下面的SQL语句返回某个数据库表的单个列。但请看其输出,并没有特定的顺序。
输入:
SELECT prod_name FROM products;
输出:
prod_name .5 ton anvil 1 ton anvil 2 ton anvil 0il can Fuses Sling TNT (1 stick) TNT(5 sticks) Bird seed Carrots Safe Detonator JetPack 1000 JetPack 2000
其实,检索出的数据并不是以纯粹的随机顺序显示的。如果不排序,数据一般将以它在底层表中出现的顺序显示。这可以是数据最初添加到表中的顺序。但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响。因此,如果不明确控制的话,不能(也不应该)依赖该排序顺序。关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有意义。
子句(clause) SQL语句由子句构成,有些子句是必需的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组成。子句的例子有SELECT语句的FROM子句,我们在前一章看到过这个子句。
为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。请看下面的例子:
输入:
SELECT prod_name FROM products ORDER BY prod_name;
这条语句除了指示MySQL对prod_name列以字母顺序排序数据的ORDER BY子句外,与前面的语句相同。结果如下:
prod_name .5 ton anvil 1ton anvil 2 ton anvil Bird seed Carrots Detonator Fuses JetPack 1000 JetPack 2000 0il can Safe S1ing TNT(1 stick) TNT(5 sticks)
通过非选择列进行排序 通常,ORDER BY子句中使用的列将是为显示所选择的列。但是,实际上并不一定要这样,用非检索的列排序数据是完全合法的。
转载请注明:成都千喜数据恢复中心 » SQL Server如何使用SELECT语句排序数据