目录
DQL-聚合函数
1、介绍
2、常见聚合函数
3、语法
4、案例
DQL-分组查询
1、语法
2、where 与having区别
3、案例
4、注意
DQL-排序查询
1、语法
2、排序方式
3、案例
DQL-分页查询
1、语法
2、注意
3、案例
DQL-执行顺序
DQL-聚合函数
1、介绍
将一列数据作为一个整体,进行纵向计算。
2、常见聚合函数
函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
3、语法
SELECT 聚合函数(字段列表)FROM 表名;
4、案例
注意这个表初始为
查询start_table 这张表的总数据量
代码语言:javascript复制select count(*) from start_table;
结果为6
查询具体字段(id)的总数据量
代码语言:javascript复制select count(id) from start_table;
结果为6
注意:null 值不参与聚合函数运算(如果你查询address 出现结果为5)
统计该表中所有明星 id 平均值
代码语言:javascript复制select avg(id) from start_table;
求统计表中最大的id
代码语言:javascript复制select max(id) from start_table;
统计所有表中男性id之和
代码语言:javascript复制select sum(id) from start_table where gender = '男';
DQL-分组查询
1、语法
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组过滤后条件]
2、where 与having区别
——执行时机不同:where 是分组之前进行过滤,不满足where条件,不参与分组:与having是分组之后对结果进行过滤。
——执行条件不同:where 不能对聚合函数进行判断,而having可以。
3、案例
根据性别进行分组,统计男性,女性数量
代码语言:javascript复制select gender,count(*) from start_table group by gender;
根据性别分组,统计男性员工和女性员工的平均 id
代码语言:javascript复制select gender,avg(id) from start_table group by gender;
根据性别分组,统计所有地址为安徽或者北京的人的数量,count 要大于等于2
代码语言:javascript复制select gender,count(*) from start_table where address = '安徽' || address = '北京' having count(*)>=2;
4、注意
——执行顺序:where > 聚合函数 >having
——分组之后查询的字段一般为聚合函数和分组字段,查询其他字段毫无意义
(比如如果你按照性别分组,但是你在前面查询姓名,查询的姓名只出现一个,这个不代表什么)
DQL-排序查询
1、语法
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式 1,字段2 排序方式2;
2、排序方式
——ASC:升序(默认值)
——DESC: 降序
注意:如果是多字段排序,当第一个字段相同时,才会根据第二个字段进行排序。
3、案例
根据 id 进行降序排序
代码语言:javascript复制select * from start_table order by id DESC ;
DQL-分页查询
1、语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录;
2、注意
——起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。
——分页查询是数据库的方言,不同数据库有不同的实现,MySQL是LIMIT。
——如果查询的是第一页数据,起始索引可以省略,直接写limit 10。
3、案例
查询第一页明星数量,每页展示3条记录
代码语言:javascript复制select *from start_table limit 0,3;
代码语言:javascript复制select *from start_table limit 3;
查询第二页明星数量,每页展示3条记录
注:(2 - 1)*3 = 3 ——(页码- 1)* 页展示记录数
代码语言:javascript复制select *from start_table limit 3,3;
DQL-执行顺序
编写顺序和执行顺序