数据库学习2024/3/16
排序与分页
1.排序
1.1如果没有使用排序的操作,默认情况下查询返回的数据是按照添加数据的顺序显示
1.2使用ORDER BY 对查询到的数据进行排序操作
升序:ASC(ascend) 降序:DESC(descend)
案例:对员工工资进行从大到小排序
SELECT salary
FROM employees
ORDER BY salary DESC;
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;
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;
#案例2:每页显示20条记录,此时显示第2页
SELECT employee_id,last_name
FROM employees
LIMIT 20,20;
总结:设每页显示条数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 偏移量