1.排序查询
语法:ORDER BY
ORDER BY 列名1 排序方式1,列名2 排序方式2...
两种排序方式:
ASC:升序,默认
DESC:降序
注意:多个排序条件,当第一个条件的值相同时,才会按照第二个条件排序
格式:
SELECT * FROM 表名 ORDER BY 列名 ASC; -- 按照列名升序排列
SELECT * FROM 表名 ORDER BY 列名1 ASC, 列名2 DESC; -- 先按照列名1升序,列名1的值相同是再按照列名2降序
2.聚合函数
将一列数据作为一个整体,进行纵向的计算。
1. COUNT:计算个数
2. MAX:计算最大值
3. MIN:计算最小值
4. SUM:计算和
5. AVG:计算平均
注意:聚合函数会排除为NULL的列
解决方案:
不采用为NULL的列
例如:SELECT COUNT(主键) FROM 表名;
函数IFNULL(列名,0)
例如:SELECT AVG(列名,0) FROM 表名;
3.分组查询
格式:GROUP BY 分组字段
注意:
分组之后,查询的结果是分组字段 或者是 聚合函数
WHERE 和 HAVING 区别
WHERE 在分组之前,不满足条件,不参与分组,后面不能接聚合函数
HAVING 在分组之后,不满足条件不会查询出来,后面可以接聚合函数
举例:
SELECT 性别,COUNT(主键id) FROM 学生表 GROUP BY 性别; -- 根据性别进行分组,查询学生表当中的性别和对应的人数
SELECT 性别,COUNT(主键id) FROM 成绩>80 GROUP BY 性别 HAVING COUNT(主键id) >2; -- 从学生表中查询成绩大于80,按照性别进行分组并且人数大于2的组
4.分页查询
格式:LIMIT 起始位置,每页条数
计算公式:起始位置:(当前页数-1)*每页显示条数;
举例:SELECT * FROM student LIMIT 0,3; -- 第1页显示3条数据
2.约束
1.非空约束(NOT NULL)
效果:不能添加为空的数据
1.创建表的时候添加约束
CREATE TABLE 表名(列名 数据类型 NOT NULL ...);
2.表创建完,再添加非空约束
ALTER TABLE 表名 MODIFY 列名 数据类型 NOT NULL;
3.删除非空
ALTER TABLE 表名 MODIFY 列名 数据类型
2.唯一约束(UNIQUE)
效果:不能添加重复的数据,NULL只能有一个
1.创建表的时候添加唯一约束
CREATE TABLE 表名(列名 数据类型 UNIQUE);
2.表创建完,再添加唯一约束(表里面的数据不能有重复)
ALTER TABLE 表名 MODIFY 列名 数据类型 UNIQUE;
3.删除唯一约束
ALTER TABLE 表名 DROP INDEX 列名
3.主键约束(KEY AUTO_INCREMENT)
效果:非空并且唯一,而且一张表中只能有一个主键
注意:
KEY:非空且唯一,一张表中只能有一个主键
AUTO_INCREMENT:根据上一行的数据自动增长
1.创建表的时候添加主键
CREATE TABLE 表名(列名1 数据类型1 PRIMARY KEY AUTO_INCREMENT,列名2 数据类型2....)
2.删除主键
ALTER TABLE 表名 DROP PRIMARY KEY;
ALTER TABLE 表名 MODIFY 自动增长的列名 自动增长的数据类型; -- 删除自动增长的效果
3.表创建完,再添加主键(表中不能有重复的主键)
ALTER TABLE 表名称 MODIFY 列名称 数据类型 PRIMARY KEY AUTO_INCREMENT;
4.外键约束
名称:FOREIGN KEY
效果:让两个表产生关联,自己表"外键"连上别的表"主键"
1.创建表的时候添加主键
CREATE TABLE 表名(
列名1 数据类型1,
列名2 数据类型2,
CONSTRAINT 外键别名 FOREIGN KEY (外键列名称) REFERENCES 其他表名称(其他表主键)
);
2.表创建完,再添加主键
ALTER TABLE 表名称 ADD CONSTRAINT 外键别名 FOREIGN KEY (外键列名称) REFERENCES 其他表名称(其他表主键);
3.删除外键
ALTER TABLE 表名称 DROP FOREIGN KEY 外键别名;
外键级联操作
多个表主外键相互联系,在删除和修改的时候,彼此受到影响
级联更新:ON UPDATE CASCADE
级联删除:ON DELETE CASCADE
添加级联操作
ALTER TABLE 表名称 ADD CONSTRAINT 外键别名 FOREIGN KEY (外键列名称) REFERENCES 其他表名称(其他表主键) ON UPDATE CASCADE ON DELETE CASCADE;
DQL查询语句1.排序查询1.排序查询 语法:ORDER BY ORDER BY 列名1 排序方式1,列名2 排序方式2... 两种排序方式: ASC:升序,默认 DESC:降序 注意:多个排序条件,当第一个条件的值相同时,才会按照第二个条件排序 格式: SELECT * FROM 表名 ORDER...