【MySQL】MySQL基础04 — SQL学习 — DQL — 排序查询(转载请注明出处)

SQL学习 — DQL — 排序查询

3. 排序查询
/*
语法:
select 查询字段
from 表名
【where 筛选条件】
order by 排序字段 【asc | desc】
特点:
1. asc代表升序,desc代表降序
如果不写,默认升序
2. 排序字段除了可以是表达式外,还可以是别名
但WHERE后面只能是表达式!!
3. 排序字段中支持单个字段,多个字段,函数
4.order by字句一般放在查询语句的最后面,但limit子句除外
*/
# 案例1:查询员工信息,要求工资从高到低排序
SELECT *
FROM employees
ORDER BY salary DESC;
# 案例2:查询员工信息,要求工资从低到高排序
SELECT *
FROM employees
ORDER BY salary ASC;
# 案例3:查询部门编号>=90的员工信息,按入职时间的先后进行排序【添加筛选条件】
SELECT *
FROM employees
WHERE department_id >= 90
ORDER BY hiredate ASC;
# 案例4:按年薪的高低显示员工的信息和年薪【按表达式排序】
SELECT *, salary * 12 * (1+IFNULL(commission_pct,0)) AS "年薪"
FROM employees
ORDER BY salary * 12 * (1+IFNULL(commission_pct,0)) DESC;
# 案例5:按年薪的高低显示员工的信息和年薪【按别名排序】
SELECT *, salary * 12 * (1+IFNULL(commission_pct,0)) AS "年薪"
FROM employees
ORDER BY 年薪 DESC;
/* WHERE 后面只能加表达式
ORDER BY 后面除了加表达式外,还可以是别名
*/
# 案例6:按姓名的长度显示员工的姓名和工资【按函数排序】
SELECT LENGTH(last_name) AS "姓名长度", last_name, salary
FROM employees
ORDER BY 姓名长度 DESC;
# 案例7:查询员工信息,要求先按工资升序,再按员工编号降序【按多个字段排序】
SELECT *
FROM employees
ORDER BY salary ASC, employee_id DESC;
/*
先排序的内容如果相同,那么在相同的内容里面进行后排序
案例中,如果工资相同,那么在这些相同的工资的员工从按编号降序
*/

3.1 排序查询练习
# 将以下内容复制到sql图像化客户端界面进行思考
1. 查询员工的姓名和部门号和年薪,按年薪降序 按姓名长度升序
2. 选择工资不在 800017000 的员工的姓名和工资,按工资降序
3. 查询邮箱中包含 e 的员工信息,并先按邮箱的字节数降序,再按部门号升序

3.2 排序查询练习答案

文件名:03SQL_sortquery.sql
链接:https://pan.baidu.com/s/11Xqwc9F7W3SZwaRH_8sFhA?pwd=ccjz
提取码:ccjz

posted @   陈景中  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
点击右上角即可分享
微信分享提示