SQL语法知识梳理—(4)DQL排序查询
目录
一、语法
SELECT
selection_list /*要查询的列名称*/
FROM
table_list /*要查询的表名称*/
WHERE
condition /*行条件*/
GROUP BY
grouping_columns /*对结果分组*/
HAVING
condition /*分组后的行条件*/
ORDER BY
sorting_columns /*对结果分组*/
LIMIT
offset_start, row_count /*结果限定*/
执行顺序:
①from子句
②where子句
③group by 子句
④having子句
⑤select子句
⑥order by子句
二、排序查询
2.1语法:
select 查询列表
from 表名
【where 筛选条件】
order by 排序列表
特点:
- 排序列表可以是单个字段、多个字段、表达式、函数、列数、以及以上的组合
- 升序 ,通过 asc ,默认行为 降序 ,通过 desc
2.2按单个字段排序
#案例1:将员工编号>120的员工信息进行工资的升序
select last_name,salary
from employees
where salary>20000
order by salary ;
2.3按表达式排序
#案例1:对有奖金的员工,按年薪降序
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees
WHERE commission_pct IS NOT NULL
ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;
2.4按别名排序
#案例1:对有奖金的员工,按年薪降序
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees
ORDER BY 年薪 DESC;
2.5按函数的结果排序
#案例1:按姓名的字数长度进行升序
SELECT last_name
FROM employees
ORDER BY LENGTH(last_name);
2.6按多个字段排序
#案例1:查询员工的姓名、工资、部门编号,先按工资升序,再按部门编号降序
SELECT last_name,salary,department_id
FROM employees
ORDER BY salary ASC,department_id DESC;
2.7补充选学:按列数排序
#案例1:按第二列降序排序
SELECT * FROM employees
ORDER BY 2 DESC;
#案例2:按first_name升序排序
SELECT * FROM employees
ORDER BY first_name;