DQL续

#2020云栖大会#阿里云海量offer来啦!投简历、赢阿里云限量礼品及阿里云ACA认证免费考试资格!>>> hot3.png

DQL续
  1. 分组查询

  2. LIMIT

  3. 语句顺序

分组查询

什么是分组查询

  • 将查询结果按照1个或多个字段进行分组,字段值相同的为一组

SELECT sex from stduent GROUP BY sex; /* 会以sex的值不同分为多少种,相同的归为一类。 每一类中其实有多少条记录还是存在,而不是像去重*/

9f775af699ae6376035d21cc0e809c11392.png

SELECT * FROM student GROUP BY sex;/*根据sex字段来分组,sex字段的全部值只有两个('男'和'女'),所以分为了两组当group by单独使用时,只显示出每组的第一条记录所以group by单独使用时的实际意义不大*/

7fa88baaf5de9f9df2c67fcebb366750c99.png

SELECT GROUP_CONCAT(sname) FROM student GROUP BY sex;/*通过group_concat(字段名),类还是只有两类男和女 即还是两条,但是类中的那个字段名的所有记录都会有显示*/ SELECT sex,GROUP_CONCAT(sno,sname,grade) AS student FROM student GROUP BY sex;

a6505704e8d927935d4770c0748b4485625.png

768b578072a9f0723c05dcc383a16c87d4f.png


group by + 聚合函数

  • 通过group_concat()的启发,我们既然可以统计出每个分组的某字段的值的集合,那么我们也可以通过集合函数来对这个"值的集合"做一些操作

使用

SELECT class,SUM(grade) from student GROUP BY class;/* 以班分类,求grade字段的和,它的记录也是分为三组去计算*/

d2001afa9388da644da207e15bb467049ff.png

SELECT class,COUNT(*) from student GROUP BY class;/*统计记录条数,也是分组后,每组有多少条*/


85c6c41dc9294c24b534b63117b20fd8614.png

SELECT class,COUNT(*) from student WHERE grade>=60 GROUP BY class;/* 筛选后再分组*/

fe093a7275938e41a025d7664b1765e6cba.png


group by + having

  • 用来分组查询后指定一些条件来输出查询结果

  • having作用和where一样,但having只能用于group by

  • 相当于是分组后再筛选

SELECT class,SUM(grade) from student GROUP BY class HAVING SUM(grade)>120;/* 对分组后产生的结果再筛选*/

d996e864d157ac73f75fcd6981dbad3d183.png

having与where的区别

  • having是在分组后对数据进行过滤.

  • where是在分组前对数据进行过滤

  • having后面可以使用分组函数(统计函数)

  • where后面不可以使用分组函数

  • WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。

LIMIT 

limit 参数1,参数2;

参数1:起始行号

参数2:查询多少行

0为第一行记录

SELECT * from student LIMIT 2,3;

2d58c1942f6eaec8ca8111eccab41a52fd1.png

分页思路

/* 通过翻页来查看,每页五行   0-4:第一页   5-9:第二页   10-14:第三页 */int nowPage = 1// 当前页,初始为第一页显示0-4行int pageTurns = 5;// 一次查询行数 
每当翻页{ nowPage++; SELECT * from student LIMIT (nowPage - 1)*5 , pageTurns;}


语句顺序

书写顺序

ad7bacc75ce31560edb9381026a660071c1.jpg

执行顺序

27c9ae7280fadc2b4cc007c4b14e0567fc1.png

d881d89376615ca0bf5d001b31cc642f320.png 791f14d6a6831da17e6b00777c68a9b48ba.gif

勤学如春起之苗,不见其增,只有所长。辍学如磨刀之石,不见其增,日有所亏

4433137dec5cd2c22b0aa6beac6df7b0014.jpg



aa1be6f301aa18c4f5946d54ce83857c8ad.png

本文分享自微信公众号 - IT那个小笔记(qq1839646816)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值