数据库学习笔记

112 阅读1分钟

数据库学习2024/3/16

排序与分页

1.排序

1.1如果没有使用排序的操作,默认情况下查询返回的数据是按照添加数据的顺序显示

1.2使用ORDER BY 对查询到的数据进行排序操作

升序:ASC(ascend)     降序:DESC(descend)

案例:对员工工资进行从大到小排序

SELECT salary

FROM employees

ORDER BY salary DESC;

Snipaste_2024-03-20_20-15-52.png

1.3如果ORDER BY 没有指明是什么排序就默认按照升序排列

SELECT salary

FROM employees

ORDER BY salary asc;  或    ORDER BY salary;

2.列的别名能在order by使用

SELECT *   FROM employees    ORDER BY annual_salary;

3.程序执行顺序是FORM-->  WHERE--> SELECT-->ORDER BY

SELECT employee_id,salary * 12  annual_salary,   department_id

FROM employees

WHERE department_id IN (50,60,70)

ORDER BY department_id;

Snipaste_2024-03-20_20-21-46.png

4.二级排序/多级排序(加,)

SELECT employee_id,salary ,department_id

FROM employees

ORDER BY department_id DESC,salary ASC;

5.分页

5.1MySQL中使用limit实现分页显示

案例1:每页显示20条记录,此时显示第1页 特殊时:"LIMIT 0,条数" 等价于 "LIMIT 条数"

SELECT employee_id,last_name

FROM employees

LIMIT 0,20;#(偏移量,条数)

#MIMIT 20;

Snipaste_2024-03-20_20-25-36.png

Snipaste_2024-03-20_20-24-55.png

#案例2:每页显示20条记录,此时显示第2页

SELECT employee_id,last_name

FROM employees

LIMIT 20,20;

Snipaste_2024-03-20_20-26-17.png

总结:设每页显示条数pageSize,此时显示第pageNo页

limit公式:偏移量,条数

*偏移量:(pageNo-1)pageSize,条数:pageSize;

5.2WHERE...ORDER BY...LIMIT...的声明顺序

结论:where -->order by -->limit

SELECT employee_id,last_name,salary

FROM employees

WHERE salary > 6000

ORDER BY salary DESC

LIMIT 0,20;#LIMIT 20;

5.3MySQL8.0新特性:LIMIT...OFFSET...

SELECT employee_id,salary

FROM employees

LIMIT 2 OFFSET 31;

LIMIT 条数 OFFEST 偏移量