MariaDB必知必会
上QQ阅读APP看书,第一时间看更新

5.1 数据排序

如你在第4章所学,下面的SQL语句从数据库表中返回单列。不过请看输出的数据并没有特定的顺序。

▼ 输入

▼ 输出

通常,检索的数据不是纯粹以随机顺序显示的。如果没有排序,数据通常按照底层表中的顺序显示。这可能是数据初始被添加到表中的顺序。然而,如果数据随后被更新或者删除,这个顺序将会受到MariaDB如何重用回收的存储空间的影响。结果就是,如果没有显式控制,你不能(也不该)依赖这种顺序。关系数据库设计理论认为,如果没有显式指定排序,不应该认为检索的数据顺序是有意义的。

新术语

子句(Clause) SQL语句由多个子句组成,有些是必需的,有些是可选的。一个子句通常由关键字和数据组成。在下一章,你将看到使用SELECT语句的FROM子句的例子。

为了显式地对使用SELECT语句检索出的数据进行排序,可使用ORDER BY子句。ORDER BY后面接一个或多个列名,依此对输出的数据排序。看看下面的例子:

▼ 输入

▼ 分析

这个语句除了指定ORDER BY子句外,其他同先前的语句一样。该子句指示MariaDB将prod_name列以字母顺序对数据进行排序。结果如下:

▼ 输出

提示

以非检索的列为标准排序 通常,ORDER BY子句中使用的列就是需要显示的列。然而,实际上这不是必需的,用非检索的列排序是完全合法的。