第五章——排序檢索數據(MYSQL必知必會)

排序數據
在沒有排序的條件下用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;

這樣就找出了價格最低的值了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章