MySQL-分页与排序

分页与排序

排序

-- 排序:
-- 升序 asc   Ascending order
-- 降序 desc  Descending order
-- order by 通过字段去排序
-- 查询的结果根据 成绩降序 升序
SELECT s.`studentno`,`studentname`,`subjectname`,`studentresult`
FROM student AS s
RIGHT JOIN `result` AS r
ON s.`studentno` = r.`studentno`
INNER JOIN `subject` AS sub
ON r.`subjectno` =  sub.`subjectno`
WHERE subjectname = '高等数学-1'
ORDER BY studentresult ASC

语法:order by 要排序的值 升序/降序

分页

-- 为什么要分页?
-- 缓解数据库压力 给人的体验更好(也有不分页 瀑布流)

-- 分页 每页只显示5条数据
-- 语法:limit 起始值,页面的大小
-- 第一页 limit 0,5 
-- 第二页 limit 5,5
-- 第三页 limit 10,5
-- 网页应用 : 当前页,页面的大小,总的页数
SELECT s.`studentno`,`studentname`,`subjectname`,`studentresult`
FROM student AS s
RIGHT JOIN `result` AS r
ON s.`studentno` = r.`studentno`
INNER JOIN `subject` AS sub
ON r.`subjectno` =  sub.`subjectno`
WHERE subjectname = '高等数学-1'
ORDER BY studentresult DESC
LIMIT 0,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 当前页]页码大小 = 总页数]

语法:limit(查询起始值下标,pagesize)

练习

-- 查询 课程成绩前十名的学生 并且分数要大于80的学生信息
-- (学号 姓名 课程名称 分数)
SELECT s.`studentno`,`studentname`,`subjectname`,`studentresult`
FROM student AS s 
RIGHT JOIN result AS r
ON s.`studentno` = r.`studentno`
INNER JOIN `subject` AS sub
ON r.`subjectno` = sub.`subjectno`
WHERE `subjectname` = '高等数学-1' AND `studentresult`>80
ORDER BY `studentresult` DESC
LIMIT 0,10
原文地址:https://www.cnblogs.com/Serendipitychen/p/14314410.html