排序查询
语法:order by 排序字段1 排序方式1 ,排序字段2 排序方式2...
排序方式:
ASC:升序(从小到大),默认的排序方式,可省略
DESC:降序(从大到小),不能省略
注意:如果有多个排序条件,则当前边的条件值一样时,才会判断第二个排序条件。
升序排序
SELECT * FROM 表名 ORDER BY 列名 ASC;
降序排序
SELECT * FROM 表名 ORDER BY 列名 DESC;
复合排序
SELECT * FROM 表名 ORDER BY 列名 ASC ,列名 DESC;
聚合函数
聚合函数是将一列数据作为整体,进行纵向运算。注意当聚合函数在运算时会排除NULL值得到的结果都是单行单列的运算结果值
注意:where 条件后面不能接聚合函数
聚合函数我们今天要学习的有如下几个:
1. count:计算个数
2. max:计算最大值
3. min:计算最小值
4. sum:计算和
5. avg:计算平均值
count函数
计算有效行数
计算表中列不为null的函数
SELECT COUNT(列名) FROM 表名;
MAX函数
计算最大值
SELECT max(列名) FROM 表名;
MIN函数
计算最小值
SELECT min(列名) FROM 表名;
SUM函数
计算和
SELECT sum(列名) FROM 表明;
AVG函数
计算平均值
SELECT avg(列名) FROM 表名;
分组查询
分组查询需要列肯定是有重复的属性值才分组,如果这一列每行的值都不一样,那分组就没意义了
分组查询是把记录使用某一列进行分组,然后统计组信息
总体思路:select 分组列,聚合函数 group by 分组列
如:查询年龄大于 25 岁的人,按性别分组,统计每组的人数
SELECT sex, COUNT(*) FROM 表名 WHERE age > 25 GROUP BY sex
如:查询年龄大于30岁的人,按性别分组,统计每组的人数,并只显示性别人数大于 3 的数据
SELECT sex, COUNT(*) FROM 表名 WHERE age > 30 GROUP BY sex HAVING COUNT(*) >3;
分页查询
语法:limit 后面跟两个参数:开始的索引,每页查询的条数;
如:当我们表进行分页显示时每页显示3条:
SELECT * FROM 表名 LIMIT 0,3; -- 第1页
SELECT * FROM 表名 LIMIT 6,3; -- 第2页
......
从上面我们可以总结出数据库起始行与当前页的关系
数据库起始行(起始索引)=(当前页-1) * 每页记录数
而limit关键字是mysql的方言,只能使用在mysql数据库中,其他数据库有自己的分页操作
本文介绍了MySQL中的基本查询技巧,包括排序查询(升序、降序、复合排序)、聚合函数(COUNT、MAX、MIN、SUM、AVG)的用法,强调了WHERE条件后不应接聚合函数。还详细讲解了分组查询的概念及示例,如按特定条件分组并统计信息。最后,讨论了分页查询的实现,通过LIMIT关键字进行数据截取,提供了数据库起始行与当前页关系的计算公式。
1385

被折叠的 条评论
为什么被折叠?



