下面的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语句排序数据