【MySQL】第四部分 排序和分页

【MySQL】第四部分 排序和分页



4. 排序和分页

排序

ASC(ascend): 升序

DESC(descend):降序

注意:

  1. ORDER BY 写在SELECT语句结尾

  2. WHERE语句和ORDER BY语句一起使用时,WHERE写在FROM之后,ORDER BY之前

  3. WHRER语句不可以使用列的别名进行筛选,只有ORDER BY可以使用列的别名

    原因是:SQL语句的执行顺序问题,首先先执行FROM,在执行WHERE,此时SELECT语句还未执行,所以WHERE语句看不到别名,接着执行SELECT,最后执行ORDER BY,此时别名已经声明,那么ORDER BY就可以使用

  4. 多级排序,需要建立在前一个排序上有相同的列值,才会进行排序,否则不会排序

# 降序
SELECT first_name,salary,department_id
FROM employees
ORDER BY employee_id DESC;

# 升序
SELECT first_name,salary,department_id
FROM employees
ORDER BY employee_id ASC;


# 多级排序
SELECT first_name,salary,department_id
FROM employees
ORDER BY department_id DESC,salary ASC;


# WHERE语句和ORDER BY语句一起使用
SELECT first_name,salary "monthly_income",salary*12 "annul_income"
FROM employees
WHERE first_name LIKE "%a%"
ORDER BY annul_income DESC;


分页

为什么使用分页? 因为 约束返回结果的数量可以减少数据表的网络传输量,也可以提升查询效率。如果我们知道返回结果只有 1 条,就可以使用LIMIT 1,告诉 SELECT 语句只需要返回一条记录即可SELECT 不需要扫描完整的表。

第一个“位置偏移量”参数指示MySQL从哪一行开始显示
第二个参数“条数”指示返回的记录条数。
LIMIT [位置偏移量,] 条数

需要注意

  1. 第一条记录的位置偏移量是0,第二条记录的位置偏移量是1,以此类推

  2. LIMIT 子句必须放在整个SELECT语句的最后

# 查询薪资大于6000并且只输出前5个人的姓名和工资
SELECT first_name,salary
FROM employees
WHERE salary > 6000
ORDER BY salary DESC
LIMIT 0,5;

# 查询薪资大于6000并且只输出排名第10到第30人的姓名和工资
SELECT first_name,salary
FROM employees
WHERE salary > 6000
ORDER BY salary DESC
LIMIT 9,20; # 因为偏移量是从0开始所以这里需要写9


# 第21至30条记录: 
SELECT * FROM 表名 LIMIT 20,10;


总结

以上就是今天要讲的内容,希望对大家有所帮助!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值