MySQL基础(二)【查询】

DQL查询语句

Content:
  1. 排序查询
  2. 聚合查询
  3. 分组查询
  4. 分页查询

1.排序查询

		SELECT DATABASE();
		SELECT * FROM student3;

		SELECT * FROM student3 ORDER BY math  ASC;  -- ASC :升序、默认(可省)
		SELECT * FROM student3 ORDER BY math  DESC; -- DESC :降序
		SELECT * FROM student3 ORDER BY math ASC , english ASC;  -- 根据多指标排序

2.聚合函数 (将某列数据作为整体,进行纵向计算)

		SELECT COUNT(id) FROM student3 ;      -- 8
		SELECT COUNT(english) FROM student3;  -- 7     count()会过滤含有null 的记录
		SELECT COUNT(IFNULL(english,0)) FROM student3;   -- 8  将含有null 的值做0统计。
		-- max() min() sum() avg()
		SELECT MAX(math) FROM student3;
		SELECT MIN(math) FROM student3;
		SELECT SUM(english) FROM student3;
		SELECT AVG(math) FROM student3;

3.分组查询 group by

		-- 分组之后查询的字段为:分组字段、聚合函数
		-- 按照性别分组、分别查询男、女同学的数学平均分,人数
		SELECT sex ,AVG(math),COUNT(id) FROM student3 GROUP BY sex;
		
		-- 按照性别分组、分别查询男、女同学的数学平均分,人数  
		-- 要求:分数低于70分的人,不参与分组
		SELECT sex ,AVG(math),COUNT(id) FROM student3  WHERE math > 70 GROUP BY sex;
		
		-- 按照性别分组、分别查询男、女同学的数学平均分,人数  
		-- 要求1:分数低于70分的人,不参与分组
		-- 要求2:分组之后,人数大于2人
		SELECT sex ,AVG(math),COUNT(id) FROM student3  WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;
		
		-- 起一个别名,简化代码
		SELECT sex ,AVG(math),COUNT(id) 人数 FROM student3  WHERE math > 70 GROUP BY sex HAVING 人数 > 2;

==总结:==     wherehaving 的区别?  (面试中常考)
	1.where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来。
	2.where 后不可以跟聚合函数(where后接普通的条件查询判断),having可以进行聚合函数的判断。

4.分页查询

		-- 语法:limit 开始的索引,每页查询的条数;
		-- 公式:开始的索引 = (当前的页码 -1 )* 每页的条数
		
		SELECT * FROM student3 LIMIT 0,3;  -- 第1页   每页显示3条记录
		SELECT * FROM student3 LIMIT 3,3;  -- 第2页
		SELECT * FROM student3 LIMIT 6,3;  -- 第3页
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值