1. 程式人生 > >oracle sql 的執行順序

oracle sql 的執行順序

SQL Select語句完整的執行順序: 

1、from子句組裝來自不同資料來源的資料;

2、where子句基於指定的條件對記錄行進行篩選;

3、group by子句將資料劃分為多個分組;

4、使用聚集函式進行計算;

5、使用having子句篩選分組;

6、計算所有的表示式;

7、select 的欄位;

8、使用order by對結果集進行排序。

SQL語言不同於其他程式語言的最明顯特徵是處理程式碼的順序。在大多資料庫語言中,程式碼按編碼順序被處理。

但在SQL語句中,第一個被處理的子句式FROM,而不是第一齣現的SELECT。SQL查詢處理的步驟序號:

1  (8)SELECT  (9) DISTINCT (11) <TOP_specification> <select_list> 

2  (1)  FROM <left_table>  

3  (3) <join_type> JOIN <right_table> 

4  (2) ON <join_condition> 

5  (4) WHERE <where_condition> 

6  (5) GROUP BY <group_by_list> 

7  (6) WITH {CUBE | ROLLUP} 

8  (7) HAVING <having_condition> 

9 (10) ORDER BY <order_by_list>

以上每個步驟都會產生一個虛擬表,該虛擬表被用作下一個步驟的輸入。這些虛擬表對呼叫者(客戶端應用程式或者外部查詢)不可用。只有最後一步生成的表才會會給呼叫者。如果沒有在查詢中指定某一個子句,將跳過相應的步驟。