A.MySQL中的 DQL-排序查询DQL-聚合函数DQL-分组查询DQL-分页查询与约束
B.DQL-排序查询
-
知识点总结
-
排序查询的语法格式什么?
-
ORDER BY 列名 排序的方式;
-
-
排序的默认方式是那种?
- ASC -> 升序排列.
-
升序排列和降序排列分别是哪个关键字?
- 升序排列 -> ASC
- 降序排列 -> DESC
-
如果有多个排序条件如何书写?
-
使用(,隔开) -> 当MATH列的成绩相同的时候,才会启动次要的排序条件.
-
#查询student表中的数据,按照数学成绩升序排列,如果数据成绩相同,则按照英语成绩升序排列. SELECT * FROM student ORDER BY math ASC , english DESC ;
-
-
C.DQL-聚合函数
-
知识点总结
- 聚合函数都包括哪几种?
- 最大值 MAX(列名)
- 最小值 MIN(列名)
- 总和值 SUM(列名)
- 平均值 AVG(列名)
- 数据量 COUNT(列名)
- 聚合函数的特点是什么?
- 以一列数据用来计算.
- 使用聚合函数的注意事项是什么?
- 使用COUNT的时候是排除NULL值的 -> 对于可能出现的NULL的值列进行IFNULL判断.
- 使用不可能出现NULL值的列进行计算.
- SELECT COUNT(*) 计算表中的一共有多少条数据.
- 使用COUNT的时候是排除NULL值的 -> 对于可能出现的NULL的值列进行IFNULL判断.
- 聚合函数都包括哪几种?
D.DQL-分组查询
-
知识点总结
-
分组查询的语法是什么?
-
GROUP BY 分组的字段(根据哪个字段进行分组)
-
-
使用分组查询的注意事项是什么?
- 如果想要在分组之前进行条件的限定 -> 需要使用WHERE
- 如果想要在分组之后进行条件的限定 -> 需要使用HAVING
- 当使用分组查询的时候,查询的字段只能是分组字段/聚合函数
-
HAVING和WHERE的区别是什么?面试题
- WHERE用于分组之前条件的限定,HAVING分组之后条件的限定.
- WHERE后面不可以加聚合函数,HAVING可以添加聚合函数.
- HAVING用到了分组查询 -> 查询的字段分组字段/聚合函数,WHERE可以是任意字段.
-
E.DQL-分页查询
-
知识点总结
-
分页查询的语法格式是什么?
-
LIMIT 参数1,参数2; -> 参数1:开始查询的索引 参数2:每页显示的条数.
-
-
分页查询的开始索引如何计算?
- LIMIT (要查询的页码-1) * 每页显示条数,每页显示的条数;
-
F.约束-概述
G.约束-非空约束
-
知识点总结
-
什么是非空约束?
- 被非空约束约束的列数据不能为NULL.
-
非空约束的语法格式是什么?
#创建PERSON表 INT类型的ID(非空) VARCHAR的NAME(非空) CREATE TABLE IF NOT EXISTS person( id INT NOT NULL , name VARCHAR(20) NOT NULL );
-
如何添加非空约束?
-
#添加非空约束到已存在的表的列 (添加NOTNULL到NAME,添加完之后NAME里面的数据不能为NULL了) ALTER TABLE person MODIFY id INT NOT NULL;
-
-
如何删除非空约束?
-
#删除NAME列的非空约束. ALTER TABLE person MODIFY id INT;
-
-
H.约束-唯一约束
-
知识点总结
-
什么是唯一约束?
- 被唯一约束约束的列中的数据不可以重复.
-
唯一约束的语法格式是什么?
-
#创建MAN表,INT类型的ID(非空,唯一) VARCHAR的NAME(非空) CREATE TABLE IF NOT EXISTS man( id INT UNIQUE NOT NULL , name varchar(20) NOT NULL );
-
-
如何添加唯一约束?
-
#添加唯一约束到MAN表中的ID列,注意如果添加的列之前还有其他的约束(NOT NULL)也要把其他的约束写上,否则会进行覆盖. ALTER TABLE MAN MODIFY ID INT UNIQUE NOT NULL ;
-
-
如何删除唯一约束?
-
#删除MAN表中的ID列的唯一约束. ALTER TABLE man DROP INDEX id;
-
-
添加唯一约束的注意事项是什么?
- 当某列要添加唯一约束的时候,要确保列中已有的数据不重复,如果重复了没有办法添加唯一约束.
-
I.约束-主键约束
-
知识点总结
-
什么是主键约束?
- 非空且唯一.
-
主键约束的语法格式是什么?
-
CREATE TABLE IF NOT EXISTS PEOPLE( ID INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) );
-
-
如何添加主键约束?
-
#添加主键到表中的已有列. #添加主键到People表中的ID. ALTER TABLE PEOPLE MODIFY ID INT PRIMARY KEY AUTO_INCREMENT;
-
-
如何删除主键约束?
-
#如何删除表中的主键(主键在一个表中只有一个,所以无需指定列.) #删除People表中的主键ID,因为主键只有一个. ALTER TABLE PEOPLE DROP PRIMARY KEY ;
-
-
使用主键约束的注意事项是什么?
- 一张表中只有一列为主键列 -> 主键列表示唯一性标识.
-
J.约束-主键约束-自动增长
-
知识点总结
-
什么是主键约束自动增长?
-
如何添加自动增长?
-
#创建PEOPLE表,INT类型ID(主键,自动增长) VARCHAR类型的NAME(非空) CREATE TABLE IF NOT EXISTS PEOPLE( ID INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) );
-
-
如何删除自动增长?
-
#删除ID列的自动增长(会删除自动增长,但是不会删除ID作为主键) #删除主键的自动增长,删除主键的自动增长,不会删除主键. ALTER TABLE PEOPLE MODIFY ID INT;
-
-
如何添加自动增长到已有的列?
-
#添加自动增长到ID列. ALTER TABLE PEOPLE MODIFY ID INT AUTO_INCREMENT;
-
-
使用自动增长的注意事项是什么?
-
K.约束-外键约束
-
知识点总结
- 如何使用添加外键约束?
- 如何删除外键?
- 如何添加外键约束到已有的列?
- 使用外键约束的注意事项是什么?
- 使用外键的好处是什么?
- 保证数据的正确性.
- 使用外键的坏处是什么?
- 在创建的表的时候操作比较繁琐,如果外键过多,会导致性能极速下降.
- 删除的时候比较麻烦,需要去做很多验证.
L.约束-外键约束-级联操作
-
知识点总结
-
如何在添加外键的时候设置级联删除/更新?
-
#添加EMP表的DEPT_ID列为外键. CREATE TABLE IF NOT EXISTS STUDENT( ID INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) NOT NULL , AGE INT NOT NULL , CLASS_ID INT, CONSTRAINT STU_CLASS_FK FOREIGN KEY (CLASS_ID) REFERENCES CLASS(ID) ON UPDATE CASCADE ON DELETE CASCADE );
-
-
M.多表关系介绍
-
知识点总结
- 表与表之间都有什么关系?
- 一对一 -> 一个人对应一个身份证号,一个身份证号对应一个人.
- 一对多 -> 一个学生对应一个班级,一个班级可以对应多个学生.
- 多对对 -> 一个学生可以对应多个老师,一个老师可以对应多个学生.
- 表与表之间都有什么关系?