oracle對無order by的語句返回的結果不進行排序,oracle此時的處理方式是按照資料的物理儲存順序來讀取資料。因為rowid是每行資料的位址,所以有時候看起來會像是使用rowid排序的。但這個順序是可能被打亂的,在表的資料被刪除後,rowid會被新插入的資料占用。所以乙個無order by查詢結果看起來也可能是個雜亂無章的。
oracle的資料庫實現就乙個原則,怎麼快怎麼效率高就怎麼來。大多數情況下不需要排序還非得按主鍵排序這不是浪費資源麼?
這和oracle的表結構是有關係的,因為oracle的表結構預設是按堆存放的。按堆存放的意思就是,隨便存,存的時候就是亂序的。如果你建表的時候就是建的按索引組織的表,那麼它返回的時候就會預設排序了。
任何時候要排序就要加上order by
SQL 預設排序
select from table 查詢的資料的預設順序是什麼?插入資料的順序?主鍵的順序?返回的資料的順序在沒有order by的情況下,完全依賴於特定的情況,可能影響輸出順序的情況很多 包括資料庫型別,資料庫的版本,儲存引擎,儲存引擎的版本,是否查詢時有對資料的修改,資料是否轉移過機器,資料的索...
oracle 預設轉義字元 Oracle轉義字元
1 oracle 特殊字元 轉義 在plsql裡邊執行 update userinfo set pageurl myjsp?page 1 pagesize 10 where id test 1 update userinfo set pageurl myjsp?page 1 pagesize 10 ...
oracle 預設轉義字元 oracle轉義字元
sql select from test where test like sdd escape test sdd kk 轉義字元為 sql select from test where test like sdd escape test sdd kk 轉義字元為 sql select from te...