9.分页和排序

本文介绍了SQL中用于数据操作的关键技巧,包括如何进行升序和降序排序,如何实现分页查询,以及如何利用分组和HAVING子句进行过滤。示例查询展示了如何查询特定课程的学生成绩,按分数降序排序并分页显示,以及如何获取不同课程的平均、最高和最低分数。这些技巧对于数据库管理和数据分析至关重要。
摘要由CSDN通过智能技术生成

排序和分页,分组过滤

排序

升序:ASC

降序:DESC

SELECT s.studentNO,studentName,subjectName,studentResult
FROM student s
INNER JOIN result r
ON s.studentNO = r.studentNO
INNER JOIN subject sub
ON r.subjectNO = sub.subjectNO
where subjectName = '数据结构-1'
ORDER BY studentResult ASC--升序

注意:ORDER BY必须是在where后面

分页

/*
分页:每页只显示5条数据
语法:limit 起始值,页面大小
*/
SELECT s.studentNO,studentName,subjectName,studentResult
FROM student s
INNER JOIN result r
ON s.studentNO = r.studentNO
INNER JOIN subject sub
ON r.subjectNO = sub.subjectNO
where subjectName = '数据结构-1'
ORDER BY studentResult ASC
LIMIT 5,5

--第一页 limit 0,5  (1-1)*5
--第二页 limit 5,5  (2-1)*5
--第三页 limit 10,5 (3-1)*5
--第N页  limit (N-1)*5,5
公式:limit (N-1*pageSize,pageSize
--【pageSize:页面大小】
--【(N-1)*pageSize:起始值】
--【数据总数/页面大小 = 总页数】

语法:

limit(查询起始下标,pageSize)

实践:

--查询 JAVA第一学年 课程成绩排名前十的学生,并且分数要大于80的学生信息(学号,姓名,课程名称,分数)
SELECT s.studentNO,studentName,subjectName,studentResult
FROM student s
INNER JOIN result r
ON s.studentNO = r.studentNO
INNER JOIN subject sub
ON sub.subjectNO = r.subjectNO
WHERE subjectName = 'JAVA第一学年' AND studentResult>80
ORDER BY studentResult DESC
LIMIT 0,10

分组过滤

-- 查询不同课程的平均分,最高分,最低分
--核心:根据不同的课程分组
SELECT subjectName,AVG(studentResutl) AS 平均分,MAX(studentResult) AS 最高分,MIN(studentResult) AS 最低分
FROM result r
INNER JOIN `subject` sub
ON r.subjectNO = sub.subjectNO
GROUP BY r.subjectNO --通过什么字段来分组
HAVING 平均分>80 --分组后过滤
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yuan_boss

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

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

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

打赏作者

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

抵扣说明:

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

余额充值