我讀過的很多SQL代碼,似乎開發人員認爲默認排序順序始終成立。例如,在構建HTML選擇列表時,他們只需要SELECT id, name FROM table
而不會發出ORDER BY
子句。處理默認排序順序的SQL最佳實踐
從我自己的經驗看來,如果沒有給出ORDER BY
子句並且沒有索引,dbms總是使用FIFO來命令數據。但是,訂單不能保證。但是,如果沒有對錶格進行更改,我從來沒有見過dbms重新排序數據。
如果表中沒有更改,您是否曾經歷過以非確定性順序選擇數據的dbms?
是否總是放置ORDER BY子句是最佳做法?
,有定義,*沒有默認的排序順序*在兼容SQL的數據庫。大多數數據庫可以並且將以不同的順序返回記錄,這取決於查詢的性質,甚至執行類似查詢時索引的狀態。假設訂單很重要,您必須始終指定您想要數據的訂單。未指定順序的查詢可能無法重複。 – 2009-11-24 21:53:19