Module 03 · Intermediate SQL
Sorting Result Sets对 SELECT 语句结果集进行排序
欢迎学习本课程,本视频将介绍一些检索关系数据库数据和对结果集显示进行排序的高级技术。
学习目标
完成本课程后,您将能够:
- 描述如何通过升序或降序对结果集进行排序。
- 解释如何指定用于排序的列。
数据检索与默认顺序
数据库管理系统(DBMS)的主要目的之一是促进数据的检索。
- 最简单的
SELECT语句:
SQL
例如,在简化的图书馆数据库模型中,SELECT * FROM table_name;SELECT * FROM Book将显示Book表中所有列的四行数据。 - 检索特定列:
我们可以选择仅列出书名:
SQL
然而,在这种情况下,结果的显示顺序似乎没有特定的规律。如果能以字母顺序显示结果集,将更加方便。SELECT Title FROM Book;
使用ORDER BY子句排序结果
要对结果集进行排序,我们使用 ORDER BY** 子句**。
ORDER BY** 基础用法**
- 作用:
ORDER BY子句用于查询中,以便按指定的列对结果集进行排序。 - 默认顺序: 如果未明确指定,结果集默认按升序 (Ascending Order, ASC) 排序。
1. 按列名升序排序 (默认)
要按书名(Title)的字母顺序排序,我们将 ORDER BY 子句添加到 SELECT 语句中:
SQL
SELECT Title FROM Book
ORDER BY Title;
-- 默认是升序 (ASC)
2. 按列名降序排序 (DESC)
要以降序 (Descending Order) 排序,需要在 ORDER BY 子句后使用关键字 DESC:
SQL
SELECT Title FROM Book
ORDER BY Title DESC;
排序细节:
如果排序关键字(例如书名的前几个词)相同,排序将从字符开始不同的位置继续进行。
3. 按列序号排序
指定排序列的另一种方法是使用列的序号(即该列在 SELECT 语句的列列表中的位置)。
- 示例:
SQLSELECT Title, Pages FROM Book ORDER BY 2; - 解析:
- 在此
SELECT语句中,列列表中的第二个列是Pages。 ORDER BY 2指示排序顺序基于Pages列的值。- 由于没有指定
DESC,结果集将按Pages(页数)的升序排列。
- 在此
- 结果: 结果集将按书的页数升序排列。
总结
现在,您已经掌握了:
- 如何通过
ORDER BY** 子句对结果集进行升序**(默认或ASC)或降序(DESC)排序。 - 如何通过列名或列的序号来指定用于排序的列。