MySQL学习日志九,分页和排序

一、排序查询

  • order by 排序

    • 升序 ASC

    • 降序 DESC

1.升序排序

-- 查询参加考试的同学,包含的信息包括学号,姓名,科目名,分数(以分数升序展示)
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
ORDER BY studentresult ASC

2.降序排序

-- 查询参加考试的同学,包含的信息包括学号,姓名,科目名,分数(以分数降序展示)
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
ORDER BY studentresult DESC

二、分页查询

  • limit(起始下标,页面大小) 分页

  • 起始下标=(第几页面数-1) *页面大小 pageIndex

  • 页面大小 pageSize

  • 总页数=总数据条数 / 页面大小 pageCounts

分页的操作必须放在最后

pageSize:页面大小

(n-1)*pageSize:起始值

n:当前页

数据总数/页面大小 = 总页数

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

例子

-- 查询参加考试的同学,包含的信息包括学号,姓名,科目名,分数(以分数降序展示)
-- 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
ORDER BY studentresult DESC
LIMIT 1,2

-- 查询考试成绩前十名的同学(学号,姓名,成绩)
SELECT s.studentno,studentname,studentresult
from student s
INNER JOIN result r
on s.studentno=r.studentno
order by studentresult DESC
LIMIT 0,10

 
-- 查询考试成绩大于80分,并且排在排在前1名的同学(学号,姓名,成绩)
SELECT s.studentno,studentname,studentresult
from student s
INNER JOIN result r
on s.studentno=r.studentno
WHERE studentresult>80
ORDER BY studentresult DESC
limit 0,1

posted @ 2023-05-14 13:14  YE-  阅读(22)  评论(0编辑  收藏  举报