SQL 自学笔记(4)排序与分页:ORDER BY 子句 和 LIMIT 子句
排序与分页:ORDER BY 子句 和 LIMIT 子句
本文笔记根据【b站 尚硅谷-宋红康 MySQL 课程】整理。笔记和代码存储在我的 GitHub 库中 github.com/isKage/sql-notes。
1 排序
为了使数据按照设定的规则排序输出,可以使用 ORDER BY
-
使用
ORDER BY 字段名 ASC
表示按照字段
生序 展示 -
使用
ORDER BY 字段名 DESC
表示按照字段
降序 展示 -
ORDER BY
位于SELECT
语句结尾
1.1 按照某一列排序
- 例如按照
hire_date
升序
1 | SELECT first_name, email, hire_date |
- 按照
hire_date
降序
1 | SELECT first_name, email, hire_date |
- 列别名同样可以使用
1 | SELECT first_name, salary * 12 AS "annual salary" |
1.2 按照多列排序
根据多个列进行数据行排序,格式为
1 | SELECT 列1, 列2, 列3 |
- 排序依据列可以不在展示列中:即
ORDER BY
后的列可以不是SELECT
后的列,只要是表中的列即可 - 多列排序,按照从左到右的方式排序
ORDER BY
后面的列,只有前面列存在相同元素时,才会参考后一列进行排序:即先按照列2
排,如果列2
各异,则完全按照列2
拍;否则参考列4
例如:按照部门降序,聘请日期升序
1 | SELECT last_name, department_id, hire_date |
2 分页
返回特定范围(行)的数据,以免占据页面过多
也可以使用图形化工具,例如
jetBrains
的DataGrip
产品。
MySQL 中使用 LIMIT
实现分页,格式为
1 | LIMIT 起始行数, 行数 -- 从 0 开始计数,起始行数可省略,默认为 0 |
LIMIT
语句放在SELECT
语句结尾- 不同数据库管理系统 DBMS 的语句存在差异
例如:选取前 5 行
1 | SELECT * |
例如:选取第 11 到第 15 行数据(从 0 计数则是:从第 10 行到第 14 行)
1 | SELECT * |
MySQL 8.0
中可以使用LIMIT 3 OFFSET 4
等价于LIMIT 4, 3
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 isKage`Blog!