SQL语言学习记录-排序与分页
2025-07-21
ORDER BY 进行排序
#升序ASC ascend(低到高)(默认);降序DESC descend(高到低)
SELECT employee_id,last_name,salary FROM employees ORDER BY salary ;
# 按照年工资进行排序
SELECT employee_id,last_name,salary,commission_pct,salary*12*(1+IFNULL(commission_pct,0)) anualSalary FROM employees ORDER BY anualSalary DESC;
/*注意:列的别名只能在ORDER BY 中使用,在WHERE中是不可以使用的
(执行SQL的时候先执行FROM WHERE,再执行SELECT 然后才是ORDER BY,别名在WHERE之后执行故无法在WHERE中使用 )
*/
#二级(多级)排序 先按照department_id降序,再按照salary升序
SELECT employee_id,last_name,salary,department_id
FROM employees
ORDER BY department_id DESC,salary ASC;LIMIT 分页
# 分页 LIMIT 偏移量,size大小 默认LIMIT 0,SIZE
SELECT employee_id,last_name
FROM employees
LIMIT 20,20;
#LIMIT ORDER BY WHERE 申明顺序
SELECT employee_id,last_name
FROM employees
WHERE salary>6000
ORDER BY salary DESC
LIMIT 20,20;
# MySQL8.0 新特性 OFFSET 偏移量
SELECT employee_id,last_name
FROM employees
LIMIT 20 OFFSET 2;
#等价于
SELECT employee_id,last_name
FROM employees
LIMIT 2,20;
/*
注意:LIMIT必须放在句子最后
LILMIT 的好处
可以减少网路传输量
可以提升查询效率 提前限定返回的数据量,可以让SELECT不去扫描全表
*/