mysql学习笔记(四)———排序查询

本文详细介绍了SQL中的orderby子句,包括升序、降序排序,支持单个字段、多个字段、表达式和函数排序,以及别名的使用。通过多个实战案例,如按工资、入职时间、年薪、姓名长度和邮箱字节数排序,展示了orderby子句的灵活性和实用性。同时提供了两个练习题,分别是按工资降序排除特定范围和按邮箱字节数与部门号排序的查询。
摘要由CSDN通过智能技术生成

排序查询(order by)

语法结构:

select  *
from	表
[where	筛选条件]
order by 排序条件[asc/desc]

特点
1. asc(ascending)代表升序,desc(desending)代表降序,不写默认升序
2. order by子句后可支持单个字段多个字段表达式函数别名
3. order by子句一般放在查询语句的最后(limit子句除外)

#案例1:查询员工信息,按照工资从高到低排序

SELECT 
	*
FROM
	employees
ORDER BY 
	salary DESC;

#案例2:查询部门编号大于等于90的员工信息,并按入职时间先后顺序进行排序【添加筛选条件】

SELECT
	*
FROM
	employees
WHERE
	department_id>=90
ORDER BY 
	hiredate ASC;

#案例3:按年薪的高低显示员工的名字和年薪【按表达式排序】

SELECT
	last_name,salary*12*(1+IFNULL(commission_pct,0)) AS 年薪
FROM
	employees
ORDER BY 
	salary*12*(1+IFNULL(commission_pct,0)) DESC;

# 【按别名排序】

SELECT
	last_name,salary*12*(1+IFNULL(commission_pct,0)) AS 年薪
FROM
	employees
ORDER BY 
	年薪 DESC;

#案例5:按姓名的长度显示员工的姓名和工资【按函数排序】

SELECT
	last_name,salary
FROM
	employees
ORDER BY 
	LENGTH(last_name) ASC;

案例6:查询员工信息,先按工资升序,再按员工编号降序【按多个字段排序】

SELECT
	*
FROM
	employees
ORDER BY
	salary ASC,employee_id DESC;

练习1:选择工资不在8000-17000的员工的姓名和工资,按工资降序

SELECT
	last_name,salary
FROM
	employees
WHERE 
	salary NOT BETWEEN 8000 AND 17000
ORDER BY
	salary DESC;

练习2:查询邮箱中包含e的员工信息,并先按邮箱的字节数降序,再按部门号升序

SELECT
	*
FROM
	employees
WHERE
	email LIKE "%e%"
ORDER BY
	LENGTH(email) DESC,department_id ASC;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值