<MySQL> 查询数据进阶操作 -- 聚合查询

目录

一、聚合查询概述

二、聚合函数查询

2.1 常用函数

2.2 使用函数演示

2.3 聚合函数参数为*或列名的查询区别

2.4 字符串不能参与数学运算

2.5 具有误导性的结果集

三、分组查询 group by

四、分组后条件表达式查询

五、MySQL 中各个关键字的执行顺序


一、聚合查询概述

        MySQL查询数据时,通过where等关键字组成条件表达式对列与列之间的数据进行运算。但是行与行之间的运算则无法通过条件表达式来描述,此时就需要使用聚合查询的方式进行查询操作

聚合查询的常用方式:  聚合函数查询
分组查询
分组后条件表达式查询

二、聚合函数查询

2.1 常用函数

函数 释义
count(*或列名) 返回查询到的数据的行数(数量)
sum(*或列名) 返回查询到的数据的总和,只能计算数字
avg(*或列名) 返回查询到的数据的平均值,只能计算数字
max(*或列名) 返回查询到的数据的最大值,只能计算数字
min(*或列名) 返回查询到的数据的最小值,只能计算数字

2.2 使用函数演示

<MySQL> 查询数据进阶操作 -- 聚合查询_第1张图片

执行步骤: 先执行查询语句 select *或列 from 表;
再执行聚合函数;

2.3 聚合函数参数为*或列名的查询区别

聚合函数参数为*或列名的查询区别 当查询内容为null时
参数为* null参与计算,当null参与计算时,结果通常为null
参数为列名 null不参与计算,忽略null

2.4 字符串不能参与数学运算

<MySQL> 查询数据进阶操作 -- 聚合查询_第2张图片

2.5 具有误导性的结果集

<MySQL> 查询数据进阶操作 -- 聚合查询_第3张图片

        由上述可知,非聚合查询和聚合查询不能在同一语句中混用!

        只有一个情况是例外的 —— 使用分组查询 group by 时。


三、分组查询 group by

        group by 是进行分组查询时使用的关键字,表示将根据关键字后的列名对数据进行分组,列中数值相同的数据将被分成一组

        group by 通常搭配聚合函数使用。

<MySQL> 查询数据进阶操作 -- 聚合查询_第4张图片

        除被 group by 的列,其他字段想出现在同一查询语句中,则必须包含在聚合函数中

<MySQL> 查询数据进阶操作 -- 聚合查询_第5张图片


四、分组后条件表达式查询

        使用 group by 子句对进行分组后,如果还需要对分组结果再进行条件过滤时,不应使用 where 语句,而要使用 having 关键字。

        使用 having 关键字是针对分组之后的数据进行条件过滤的。

where 关键字 和 having 关键字 的区别
where 用于分组之前的条件筛选
having 用于分组之后的条件筛选

<MySQL> 查询数据进阶操作 -- 聚合查询_第6张图片


五、MySQL 中各个关键字的执行顺序

from on join where group by with having select distinct order by limit
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

        关键字从左到右,优先级依次从高到低。优先级高的关键字先执行。


阅读指针 -> 《MySQL表数据的 CRUD 进阶操作 -- 联合查询》

<MySQL> 查询数据进阶操作 -- 联合查询-CSDN博客介绍笛卡尔积及联合查询,联合查询包括:内连接、外连接、自连接、子查询、合并查询https://blog.csdn.net/zzy734437202/article/details/134424446

你可能感兴趣的:(MySQL,mysql,数据库)