MySQL的DQL数据查询语言--分页和排序

4.5、分页和排序

排序 order by

-- 排序:升序ASC ,降序DESC
-- ORDER BY 通过哪个字段排序 升序或降序(DESC、ASC)
-- 查询的结果根据成绩降序、升序排序
SELECT s.`studentno`,`studentname`,`SubjectName`,`studentresult`
FROM `student` s
INNER JOIN `subject` sub
ON s.`gradeid`=sub.`GradeID`
INNER JOIN `result` r
ON s.`studentno`=r.`studentno`
WHERE sub.`SubjectName`='高等数学-2'
ORDER BY `studentresult` ASC

分页 limit

-- 为什么要分页?
-- 缓解数据库压力,给人的体验更好

-- 分页,每页只显示5条数据
-- 第一页   limit 0,5   (1-1)*5
-- 第二页   limit 5,5   (2-1)*5
-- 第三页   limit 10,5   (3-1)*5
-- 第N页   limit  (n-1)*pageSize   pageSize
-- 【pageSize:页面的数据大小】
-- 【(n-1)*pageSize:起始数据的值】
-- 【n:当前页】
-- 【数据总数/页面大小 = 总页数】

SELECT s.`studentno`,`studentname`,`SubjectName`,`studentresult`
FROM `student` s
INNER JOIN `subject` sub
ON s.`gradeid`=sub.`GradeID`
INNER JOIN `result` r
ON s.`studentno`=r.`studentno`
WHERE sub.`SubjectName`='高等数学-2'
ORDER BY `studentresult` ASC
LIMIT 0,5

语法:limit(查询的起始下标,pageSize)

练习

-- 查询JAVA第一学年 课程成绩排名前十的学生,并且分数要大于80 的学生信息(学号、姓名、课程名称、分数)

SELECT s.`studentno`,`studentname`,`SubjectName`,`studentresult`
FROM `student` s
INNER JOIN `subject` sub
ON s.`gradeid`=sub.`GradeID`
INNER JOIN `result` r
ON s.`studentno`=r.`studentno`
WHERE `SubjectName`='JAVA第一学年'
ORDER BY `studentresult` DESC
LIMIT 0,10

猜你喜欢

转载自blog.csdn.net/l1341886243/article/details/118582217