ASC 为升序排序 (ascend) DESC 为降序排序 (descend)
ORDER BY 子句在SELECT末尾写上
基于排序语法的练习
sql复制代码
SELECT *
FROM employees;
# 如果在ORDER BY 后没有显式指名排序的方式的话,则默认按照升序排列。
# 练习:按照salary从高到低的顺序显示员工信息
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary ASC;
# 练习:按照salary从低到高的顺序显示员工信息
SELECT employee_id, last_name, salary
FROM employees
ORDER BY salary DESC;
执行升序排序后的窗口显示
执行降序排序后的窗口显示
(2) 排序的别名使用
在前面的章节讲到,可以使用空格,双引号和AS关键字给一个表里面的列名起别名
示例代码
sql复制代码
#2. 使用列的别名,进行排序
SELECT employee_id emp_id, last_name, salary AS sala
FROM employees
ORDER BY sala ASC;
#列的别名只能在 ORDER BY 中使用,不能在WHERE中使用。
#如下操作报错!
SELECT employee_id emp_id, last_name, salary AS sala
FROM employees
WHERE emp_id IN(100, 120, 140)
ORDER BY sala ASC;
在使用别名的时候,ORDER BY是可以利用别名的,但是WHERE不可以,这个后面会讲解
报错信息
sql复制代码
1 queries executed, 0 success, 1 errors, 0 warnings
查询:SELECT employee_id emp_id, last_name, salary AS sala FROM employees where emp_id in(100, 120, 140) ORDER BY sala ASC LIMIT 0, 10...
错误代码: 1054
Unknown column 'emp_id' in 'where clause'
执行耗时 : 0 sec
传送时间 : 0 sec
总耗时 : 0 sec
(3) 二级排序
二级排序就是为了处理当一级排序中两个结果相等的时候,为了不乱序所引出来的方法
示例代码
sql复制代码
#4. 二级排序
#练习:显示员工信息,按照department_id的降序排列,salary的升序排列
SELECT employee_id,salary,department_id
FROM employees
ORDER BY department_id DESC,salary ASC;
(4) MySQL内部执行语句的顺序
sql复制代码
#3. 强调格式:WHERE 需要声明在FROM后,ORDER BY之前。
SELECT employee_id,salary
FROM employees
WHERE department_id IN (50,60,70)
ORDER BY department_id DESC;
二,分页
分页的意思就是将大量的数据进行分开,以一页一页的形式来进行展示对应的数据
LIMIT的语法
sql复制代码
LIMIT 偏移量, 显示的数据个数
(1) LIMIT的基本使用
sql复制代码
# 需求1:每页显示20条记录,此时显示第1页
SELECT employee_id,salary,department_id
FROM employees
LIMIT 0, 20