暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第10讲:MySQL的排序和分页

何先振 2023-08-21
164

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


排序数据



排序规则


如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。


使用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 来统计行数。



推荐阅读书籍





点击上方"何先振"关注并选择设为星标
各类IT技术文章不会错过!

文章转载自何先振,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论