其實,檢索出的數據並不是以純粹的隨機方式顯示的。如果不排序,數據一般將以它在底層表中出現的順序顯示。這可以是數據最初添加到表中的順序。但是,如果數據後來進行過更新或刪除,則此順序將會受到DBMS重用回收存儲空間的影響。因此,如果不明確控制的話,不能(也不應該)依賴該排序順序。關系數據庫設計理論認為,如果不明確規定排序順序,則不應該假定檢索出的數據的順序有意義。
子句(clause) SQL語句由子句構成,有些子句是必需的,而有的可選。一個子句通常由一個關鍵字加上所提供的數據組成。子句的例子有Select語句的FROM子句,我們在前一章看到過這個子句。
為了明確地排序用Select語句檢索出的數據,可使用ORDER BY子句。ORDER BY子句取一個或多個列的名字,據此對輸出進行排序。請看下面的例子:
這條語句除了指示DBMS軟件對prod_name列以字母順序排序數據的ORDER BY子句外,與前面的語句相同。結果如下:
ORDER BY子句的位置 在指定一條ORDER BY子句時,應保證它是Select語句中最後一條子句。該子句的次序不對將會出現錯誤消息。
通過非選擇列進行排序 通常,ORDER BY子句中使用的列將是為顯示所選擇的列。但是,實際上並不一定要這樣,用非檢索的列排序數據是完全合法