数据库特点
- 持久化存储
- 速度快
- 数据的有效性
- 易拓展
sql语句
- DDL:针对表,库
- DML:针对表数据的操作
- DCL:开放权限
数据类型
数值类型(int float decimal(10,0) double。。)
字符串类型
- char
- varchar
- text
枚举
enum(“nan”,“nv”)
日期类型
- date(年月日)
- time(时分秒)
- timestamp
- datetime(年月日时分秒)
- year(年)
约束:
- not null
- primary key
- auto_increment
- default
- 外键
数据库操作语句
- 连接数据库:mysql -uroot -p
- 创建数据库:create database dbname
- 查看数据库:show databases
- 查看当前使用:select database()
- 使用数据库:use dbname
- 删除数据库:drop database dbname
操作数据表
-
创建表:create table tbname(字段 约束) ``特殊字符
-
展示表:show tables (查看当前数据库的表)
-
查看表结构:desc tbname
-
查看表sql语句:show create table
表字段
添加字段:alter table tbname add 字段名 类型
修改字段:alter table tbname modify
修改字段:alter table tbname change 原名 新名字
删除字段:alter table taname drop 字段名
增删改查
- 添加数据:insert into表名 (字段名称)values(值1),(值2)
修改:update tabname set 字段=新值 where 条件
删除:delete from taname where 条件
查询:select * from tbname
去重查询:distinct
条件查询
模糊查询:like(%,_)
聚合函数(count,sum,max,min,avg),round(保留几位小数)
分组与筛选
- group by
- group_concat(字段名)
- with rollup(分组之后总聚合)
- group by +having
排序
order by (asc,desc)
限制
limit
连接查询
- inner join
- left join
- right join
子查询
select * from tbname where 字段名=(select 字段名 form tbname)
自关联
自己与自己连接
外键
外键的目的:多表进行关联,保持数据的完整性与一致性
外键所在的表子表,主键所在的表是主表
创建方式
1.创建表 constraint fk_cid foreign key cid references 主表 主键
2.修改表字段 alter table tbname add
删除外键
1.alter table tbname drop foreign key
注意
1.外键可以为空,但主键是不能为空的
2.外键必须属于主键
3.主表先存在,再从表添加外键
mysql与python交互
- 准备数据
- 导入库
- 连接数据库connect()
- 获取游标对象cursor()
- 通过游标对象去执行sql语句
1.fetchone
2.fetchmany(size)
3.fetchall() - 关闭游标
- 关闭连接