分享

MySQL笔记——条件查询(排序、分组、聚合函数、分页)

 Fengsq501u81r4 2021-08-07

排序

关键词:ORDER BY排序只是一种显示方式,不会影响数据库中的数据顺序

//语句格式  如果ASC/DESC不写 默认是 ASCSELECT * FROM 表 WHERE 字段=值 ORDER BY 字段 ASC/DESC

ASC

升序(默认)

DESC

降序

1.单列排序:使用一个字段排序

//按照年龄降序排序 select * from king_hero order by age DESC;
MySQL笔记——条件查询(排序、分组、聚合函数、分页)

2.组合排序

SELECT * FROM 表 WHERE 字段=值 ORDER BY 字段 ASC/DESC, ORDER BY 字段2 ASC/DESC……优先按照第一个排序,如果第一个相同再按照第二个排序,以此内推

//按照年龄升序排序,再按照上架时间升序排序select * from king_hero order by age ASC, online_time ASC;
MySQL笔记——条件查询(排序、分组、聚合函数、分页)

聚合函数

聚合函数查询时纵向查询,他对一列的值进行查询返回结果。集合函数会忽悠null,聚合函数是写在SELECT 后面)

count

统计指定列记录数,记录为null不统计

sum

计算指定列数值的和,如果不是数值类型,结果为0

max

得到指定列最大值

min

得到指定列最小值

avg

得到指定列平均值,如果不是数值类型,结果为0

写法:SELECT 函数(字段) FROM 表

//统计指定列记录数//统计时由于null不统计,所以统计时建议用“*”不要用其他列select count(*) from king_hero;
MySQL笔记——条件查询(排序、分组、聚合函数、分页)
//获取英雄最大年龄select max(age) from king_hero;
MySQL笔记——条件查询(排序、分组、聚合函数、分页)
//得到所有英雄血量之和select sum(life) from king_hero;
MySQL笔记——条件查询(排序、分组、聚合函数、分页)

max、min、avg 语法差不多就不再重复写了

分组

对查询数据进行分组,相同数据为一组;关键字:GROUP BY 、HAVING

分组的目的是为了统计,一是要配合聚合函数使用的;当我们使用某个字段进行分组时,要把对应字段分组查询出来,不然不知道是哪一个分组; HAVING是对分组后的数据进行条件的判断

所以我们一般写法:select 聚合函数(),分组字段 from 表 group by 分组字段 HAVING 条件

//统计每个阵营多少英雄select count(*), camp from king_hero GROUP BY camp;
MySQL笔记——条件查询(排序、分组、聚合函数、分页)
// 统计每个阵营多少人,少于3个的英雄不显示select count(*), camp from king_hero GROUP BY camp HAVING count(*)>2;
MySQL笔记——条件查询(排序、分组、聚合函数、分页)

分页

LIMIT :限制查询条数 注意 :放在最后面

写法:SELECT * FROM 表 LIMIT offset,length;

LIMIT 语法limit offset,length; or limit length;

offset

偏移量,跳过前面多少条,默认为0

length

获取多少条

//跳过前面4条,获取5条select * from king_hero limit 4,5;
MySQL笔记——条件查询(排序、分组、聚合函数、分页)

使用场景:数据分页(比如我们在做一个商城系统时,前端需要显示商品信息,我们就给他分页数据,而不是全部返回给他)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多