排序數據
在沒有排序的條件下用SELECT檢索的數據並不是以純粹的隨機順序顯示的。如果不排序,數據一般將以它在底層表中出現的順序顯示。可以是數據最初添加到表中的順序。但若數據後來進行過更新或者刪除,則此順序將受到MYSQL重用回收存儲空間的影響。關係數據庫設計理論認爲,如果不明確排序順序,則不應該假定檢索出的數據的順序有意義。
字句:SQL語句由字句構成,有些子句是必需的,而有些是可選的。一個子句通常有一個關鍵字和所提供的數據組成。例如SELECT語句中的FROM字句。
排序的用SELECT語句檢索出數據,也是用ORDER BY字句。ORDER BY子句去一個或者多個列的名字。
單個:
SELECT ID
FROM table_name1
ORDER BY ID;
根據ID排序顯示。
多個:
SELECT ID,PRICE
FROM table_name1
FROM BY ID,PRICE;
先按照ID排序,然後再按照價格排序。
理解多列排序時,排序按照所規定的順序進行。但是要注意的是,先按照ID的順序排序,然後僅在具有相同的ID值的記錄中再根據PRICE再排序,要注意大前提是ID相同時再根據PRICE排序,如果ID都不同,那就沒有PRICE排序的必要了。
制定排序方向
不通過關鍵字制定排序方向時,默認升序。若想降序排序,則需要添加關鍵詞 DESC,升序也可加關鍵字 ASC。
SELECT ID
FROM table_name1
ORDER BY ID [DESC/ASC];
當若想多列排序時,比如最貴的排在前面:
SELECT ID,NAME,PRICE
FROM table_name1
ORDER BY PRICE DESC,ID;
DESC關鍵字只應用到直接位於其前面的列名。所以上述例句中,只對PRICE進行降序排列,ID還是默認的升序。
區分大小寫和排序順序:
對於大小寫的順序,比如a與A,這就得取決於數據庫是如何設置的了。在字典排序中,A視爲與a相同,這是大多數MYSQL數據庫的默認行爲,但是,許多數據庫管理員能夠在需要時改變這種行爲。
這裏,關鍵問題是,如果確實需要改變這種排序順序,用簡單的ORDER BY子句是做不到的,必須請求數據庫管理員的幫助。
使用ORDER BY 和LIMIT的組合
這種組合可以找出列中的最高或最低的值。
SELECT PRICE
FROM table_name1
ORDER BY PRICE
LIMIT 1;
這樣就找出了價格最低的值了。