MySQL数据操作与查询(第六章 下)

Posted m0_58827096

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据操作与查询(第六章 下)相关的知识,希望对你有一定的参考价值。

上一节我们学习了聚合函数,并且了解了每个函数的作用及用法,这一节我们讲分组查询。

分组查询 group by 子句

group by子句

  1. 使用 group by 子句可以将数据划分到不同的组中,实现对记录的分组查询。
  2. group by 从英文字面的意义上可以理解为“根据(by)一定的规则进行分组(group)”。
  3. 该子句的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对这若干个小区域进行统计汇总。

语法如下:

说明:
在通常情况下, group by 子句需要与聚合函数一同使用。

多字段分组和 having 子句

多字段分组

  1. group by 子句的分组字段是一个字段列表,即 mysql 支持按多个字段进行分组。
  2. 具体的分组策略:分组优先级从左至右,即先按第一个字段进行分组,然后在第一个字段值相同的记录中,再根据第二个字段的值进行分组, 依次类推。

having子句
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据。having 子句的位置放在 group by 子句之后,常包含聚合函数。

where 子句和 having 子句的区别
having 子句和 where 子句均用于过滤数据,两者的区别在于:where 子句对结果集进行过滤筛选,而 having 子句则对分组的结果进行筛选。

第六章总结

  1. count 和 sum 函数的区别:sum 函数是对符合条件的记录的数值列求和,count 函数的值是满足查询条件的结果(或记录)个数。count(column) 用于统计 column 列不为 null 的记录个数。
  2. 如何对查询结果进行过滤之后再分组统计:先使用 where 子句表达式对查询结果进行过滤筛选;然后,再使用 group by 子句对 where 子句的输出进行分组统计。

本章的内容到这里就结束了,下一节我们讲第七章连接查询,我们下次再见。

以上是关于MySQL数据操作与查询(第六章 下)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL学习之第六章-数据库备份与恢复

第六章 事务与并发控制

第六章数据库

高性能mysql 第六章查询性能优化 总结(上)查询的执行过程

操作系统概念笔记——第六章:进程同步

数据库系统实现 第六章 查询执行