数据库-MySQL-基础(5)- DQL

2022-11-18 15:47:41 浏览数 (2)

目录

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-执行顺序

编写顺序和执行顺序

0 人点赞