MySQL查询、约束、多表之间的关系、范式
重点学习内容
- DQL查询语句
- 排序查询
- 聚合函数
- 分组查询
- 分页查询
- 约束
- 多表之间的关系
- 范式
- 数据库的备份和还原
DQL查询语句
-
排序查询
- 升序:语法+order by 字段1 asc,字段2 asc,字段n asc…
- 降序:语法+order by 字段1 desc,字段2 desc,…字段n desc…
- 注意: 第一字段相同时,才会根据第二字段排序哦
-
聚合函数
- count:计算个数
- 一般选择非空的列:主键
- max:计算最大值
- min:计算最小值
- sum:求和
- avg:计算平均值
- 注意:聚合函数计算会排除null;
- count:计算个数
-
分组查询
- 场景:student男同学一组,女同学一组,看他们谁的英语平均分高
- 语法: group by+ 分组字段
- 分组之后查询的字段:分组字段、聚合函数
- where,having:where分组之前限定,having分组之后限定,如果不满足,exit不查询。 where后不可以跟聚合函数,having后可以
- 举个栗子
- SELECT sex,AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex; – 分组前限定数学70分+
- SELECT sex,AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex having count(id) > 2; – 分组后限定人数 >2
-
分页查询
- 语法: limit 开始的索引,限定的条数
- 开始的索引公式 = (当前页码数 - 1)* 每页的条数
- SELECT *FROM student LIMIT 0,3; – 第一页,展示前三条
- SELECT *FROM student LIMIT 4,6; – 第二页,展示4-6条
-
约束
- 概念:对表的数据进行限定,保证表的数据正确性、有效性、完整性;我们在创建表的过程中添加对字段的约束
- 分类:
- 主键约束:primary key
- 非空约束:not null
- 唯一约束:unique
- 外键约束:foreign key
-
主键约束
- 注意
- 含义:非空且唯一
- 一张表只能有一个字段为主键
- 主键是表中记录的唯一标识:比如身份证
- 添加/删除主键约束
- 创建表添加:字段后加primary key
- 删除:alter table stu drop primary key;
- 添加字段:alter table stu modify id int primary key;
- 自动增长
- auto increament
- 删除:alter table stu modify id int
- 注意
-
外键约束
- 思路:在使用多张表的时候,我们可以用外键让两张表关联,比如一张员工表和一张部门表,同时具备一个id,部门id, 有销售部和研发部, 这时候你会发现,根本没办法操作部门表的id字段,比如删除部门表的id是不行的,这是外键约束的思路。 员工表 部门表
- 语法:
-
create table 表名(
…
dep_id int
constraint 外键名称 foreign key (dep_id) references
关联的主表名称(主表列名称)
); -
删除外键:ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
-
创建表后,添加外键:ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
-