python--数据库学习笔记
数据库特点
- 持久化存储
- 速度快
- 数据的有效性
- 易扩展
SQL语句
- DML:insert update delete select
- DDL:create,drop,alter
- DCL
数据类型
数值类型
- int
- float
- double
- decimal
字符串类型
- char()
- varchar()
- enum(“M”, “F”)
- text
日期
- data年月日
- time时分秒
- daretime年月日时分秒
- year年
- timestamp
约束
- pk
- fk
- not null
- default
操作数据库
- 连接数据库
mysql -uroot -p
创建数据库
create database dbname;
- 含有特殊字符 ``
- 查看已创建的数据库
show databases;
- 当前使用的数据库
select database();
- 使用数据库
use dbname;
- 删除数据库
drop database dbname;
操作数据表
- 创建表
create table tbname(字段 数据类型 约束);
- 展示表
show tables;
show create table
查看表的结构
desc tbname
- tbname代指表的名称
DML:增删改查
- 增加:
insert into (字段1,字段2)表名 value (值1,值2),(值1,值2);
- 修改:
update tbname set 字段=新值 where 条件;
- 删除:
delete from tbname where 条件;
- 查询:
select 字段1,字段2 from tbname;
- 查询去重:
select distinct 字段 from tbname;
条件查询
select * from tbname where comdition;
- 比较运算符
- 逻辑运算符
模糊查询
- like
- %
- _
聚合函数
- count()
- sum()
- max()
- min()
avg()
- round()
分组与筛选
- group by
- group_concat(字段名)
- group by with rollup 分组之后的总聚合
- group by + having
排序
- select * from tbname order by col1 asc|desc [,col2 asc|desc…]
限制
select * from tbname limit start,count;
- start 0 偏移量
- count 显示的条数
连接查询
- 内连接
外连接
- 左连接
- 右连接
select * from tb1 inner|left|right join tb2 on tb1.col=tb2.col;
子查询
select * from tb1 where hight=(select max(hight) from tb1)
自关联
- 自己与自己关联
外键(foreign key)
- 外键目的:多表关联的时候保持数据的完整性与一致性
- 外键所在的是从表,主键所在的主表
创建方式
- 创建表时
constraint fk_cid foreign key cid references 主表名 主键;
- 修改表字段时添加外键
alter table tbname add ....
- 创建表时
删除外键
alter table tbname drop foreign key 外键约束名;
注意:
- 外键可以为空,但是主键不能为空
- 外键必须属于主键
- 主表先存在,再从表添加外键
Mysql与Python交互
准备数据
- 把goods 表 分组后的数据 插入到别的表
- python充当客户端的角色
连接步骤
- 1.导入库
- 2.连接数据库
conn = connect()
- 3.获取游标对象
cs = conn.cursor()
4.游标对象执行
sql
语句cs.execute(query)
cs.fetchone()
cs.fetchmany(s)
cs.fetchall()
- 5.关闭游标
- 6.关闭连接
还没有评论,来说两句吧...