数据库操作
- where后面不可以跟聚合函数,having后可以进行聚合函数的判断。
从学生表中查询数学成绩大于70按性别分组且人数大于2的数据。
SELECT COUNT(id) as count,sex,avg(math) as 平均分 from student3
where math > 70 GROUP BY sex HAVING count >2;
- limit(0,3) 从第一条数据开始查3条数据 ---(分页)。
- 数据库约束:主键约束:primary key、非空约束:not null、唯一约束:unique、外键约束:foreign key。创建表后添加约束用modify。
唯一约束unique
phone varchar(20) UNIQUE
change 可以更改列名 和 列类型 (每次都要把新列名和旧列名写上, 即使两个列名没有更改,只是改了类型)
modify 只能更改列属性 只需要写一次列名。mysql唯一约束中null不被约束。
not null约束可以用modify等删除;唯一约束等用drop index;主键用drop primary key;
范式
- 第一范式:每个列是不可分割的原子数据项;
- 第二范式:消除第一范式基础上的非主属性对主码的部分函数依赖;
- 第三范式:在第二范式的基础上消除传递依赖。
范式主要解决数据冗余和数据修改造成的联动问题。
设计表时尽量分多个表记录不同的属性或者说是不同模块的属性。
数据库备份
- mysqldump -u -p 数据库名 > 保存路径
- source sql文件路径 还原数据库
多表查询
解决笛卡尔积问题
MYISAM和InnoDB
https://www.runoob.com/w3cnote/mysql-different-nnodb-myisam.html