1. 程式人生 > 其它 >SQL 入門教程:排序(ORDER BY)資料

SQL 入門教程:排序(ORDER BY)資料

目錄

目錄彙總:SQL 入門教程:面向萌新小白的零基礎入門教程

下面的 SQL 語句返回某個資料庫表的單個列。但請看其輸出,並沒有特定的順序。

輸入▼

SELECT prod_name
FROM Products;

輸出▼

prod_name
--------------------
Fish bean bag toy
Bird bean bag toy
Rabbit bean bag toy
8 inch teddy bear
12 inch teddy bear
18 inch teddy bear
Raggedy Ann
King doll
Queen doll

其實,檢索出的資料並不是隨機顯示的。如果不排序,資料一般將以它在表中出現的順序顯示,這有可能是資料最初新增到表中的順序。但是,如果資料隨後進行過更新或刪除,那麼這個順序將會受到 DBMS 重用回收儲存空間的方式的影響。因此,如果不明確控制的話,則最終的結果不能(也不應該)依賴該排序順序。關係資料庫設計理論認為,如果不明確規定排序順序,則不應該假定檢索出的資料的順序有任何意義。

子句(clause)

SQL 語句由子句構成,有些子句是必需的,有些則是可選的。一個子句通常由一個關鍵字加上所提供的資料組成。子句的例子有我們在前一部分看到的 SELECT 語句FROM 子句。

為了明確地排序用 SELECT 語句檢索出的資料,可使用 ORDER BY 子句。ORDER BY 子句取一個或多個列的名字,據此對輸出進行排序。請看下面的例子:

輸入▼

SELECT prod_name
FROM Products
ORDER BY prod_name;

分析▼

除了指示 DBMS 軟體對 prod_name 列以字母順序排序資料的 ORDER BY 子句外,這條語句與前面的語句相同。結果如下。

輸出▼

prod_name
--------------------
12 inch teddy bear
18 inch teddy bear
8 inch teddy bear
Bird bean bag toy
Fish bean bag toy
King doll
Queen doll
Rabbit bean bag toy
Raggedy Ann

注意:ORDER BY 子句的位置

在指定一條 ORDER BY 子句時,應該保證它是 SELECT 語句中最後一條子句。如果它不是最後的子句,將會出錯。

提示:通過非選擇列進行排序

通常,ORDER BY 子句中使用的列將是為顯示而選擇的列。但是,實際上並不一定要這樣,用非檢索的列排序資料是完全合法的。

請參閱

(完)