MySQL_DQL之单表查询 ( 排序查询、聚合查询、分组查询 、分页查询 )

一、排序查询

关键词 ORDER BY

-- 按数学成绩进行排序--默认是升序的
SELECT * FROM student ORDER BY math ASC;

-- 降序
SELECT * FROM student ORDER BY math DESC;

-- 按照数学成绩排名,如果数学成绩一样,则按照英语成绩排名
SELECT * FROM student ORDER BY math DESC,english DESC;

二、聚合查询

将一列数据作为一个整体,进行纵向计算

聚合函数的计算会排除非空的

1、选择不包含非空的列进行计算(主键)
2、采用 IFNULL(列名 , 0) 的函数

count 计算个数
-- count 计算个数
SELECT COUNT(NAME)FROM student;

-- 计算所用变量
SELECT COUNT(*)FROM student;


max 计算最大值
-- 计算数学成绩最大值
SELECT MAX(math) FROM student;

min 计算最小值
-- 计算数学成绩最小值
SELECT MIN(math) FROM student;

sum 求和
-- 求和
SELECT SUM(math)FROM student;

avg 计算平均值
-- 求平均值
SELECT AVG(math)FROM student;

三、分组查询

分组之后加分组的字段和聚合函数
加其他的字段是没有意义的

-- 按性别分组,分别查询男女同学的平均分
SELECT sex, AVG(english) FROM student GROUP BY sex;
-- 按性别分组,分别查询男女同学的平均分,人数
SELECT sex, AVG(math),AVG(english),COUNT(id) FROM student GROUP BY sex;

Where 和 Having 的区别
-- 按性别分组,分别查询男女同学的平均分,人数,要求:分数低于70分的人不参与分组
SELECT sex, AVG(math),COUNT(id)AS 人数 FROM student WHERE math>70 GROUP BY sex;

-- 按性别分组,分别查询男女同学的平均分,人数,要求:分数低于70分的人不参与分组,分组之后,人数要大于3个人
SELECT sex, AVG(math),COUNT(id)AS 人数 FROM student WHERE math>70 GROUP BY sex HAVING COUNT(id)>3;

1、Where 在分组之前进行限定,如果条件不满足,则不参与分组。Having 是在分组之后进行限定, 如果不满足结果则不会被查询出来。

2、where后不可以跟聚合函数,Having可以进行聚合函数的判断。

四、分页查询

语法 : limit 开始的语法,每页查询的条数;

公式 : 开始的索引 = (当前页码 - 1)* 每页显示的条数;

-- 每页显示三条
SELECT *FROM student LIMIT 0,3;-- 第一页

SELECT *FROM student LIMIT 3,3;-- 第二页

SELECT *FROM student LIMIT 6,3;-- 第三页

SELECT *FROM student LIMIT 9,3;-- 第四页

分页操作是一个“方言”
limit 是MySQL的一个方言

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

稻田里展望者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值