以下文章来源于何先振,责编小何

排序规则
如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。
使用ORDER BY 对查询的数据进行排序操作。
升序操作:ASC(ascend)默认不写是升序操作。


降序操作:DESC (descend)

单列排序
我们可以使用列的别名,进行排序

我们列的别名,只能在ORDER BY 中去使用,不能在WHERE中使用。因为在执行的顺序时,先执行FROM再执行WHERE,后面在执行SELECT这个时候才有别名,最后再执行ORDER BY

多列排序
可以指定多个列名,进行排序。例如根据部门id、工资进行排序

背景
查询返回的记录太多了,查看起来很不方便。
表里有4条数据,我们只想要显示第2、3条数据怎么办呢。
实际规则
mysql使用limit实现数据的分页显示
limit 格式 :
严格来说:LIMIT 位置偏移量,条目数。
结构LIMIT 0,条目数 等价于 LIMIT 条目数
每页显示20条记录,此时显示第1页,limit 第一位是偏移量也就是从第几个开始,默认第一个是0,逗号 第二位是总数,要显示20条,所以写20.

显示第2页

显示第三页

总结出公式

WHERE... ORDER BY.... LIMIT 的使用顺序
先写WHERE 后写ORDER BY 最后写LIMIT

新特性,MySQL8.0开始引入OFFSET 指的是偏移量,相当于将偏移量放到后面去了。

LIMIT 1和ORDER BY DESC 降序排序取第一个,可以求出最大值。升序可以求最小

拓展:
在MySQL 、PostgreSQL、MariaDB和SQLite中使用LIMIT关键字作为分页。
如果是SQL Server和Access 需要使用TOP关键字 进行分页。
‘
如果使用DB2 使用FETCH FIRST 5 ROWS NOLY
如果使用ORacle 使用关键字 ROWNUM 来统计行数。

推荐阅读书籍




