天天看點

Select語句的執行步驟 ZT

當執行Select語句時,DBMS的執行步驟表示如下:

(1)執行FORM子句,根據FROM子句中的一個或多個表建立工作表。如果在FROM子句中有兩個或多個表,DBMS将對表進行交叉連接配接,作為工作表。

(2)如果有WHERE子句,DBMS将WHERE子句列出的搜尋條件作用于步驟(1)生成的工作表。DBMS将保留那些滿足搜尋條件的行,删除那些不滿足搜尋條件的行。

(3)如果有GROUP BY子句,DBMS将步驟(2)生成的結果表中的行分成多個組,每個組所有行的group_by_expression字段具有相同的值,DBMS将每組減少到單行,然後将其添加到新的結果表中。

(4)如果有HAVING子句,DBMS将HAVING子句列出的搜尋條件作用于步驟(3)生成的“組合”表中的每一行。DBMS将保留那些滿足搜尋條件的行,删除那些不滿足搜尋條件的行。

(5)将SELECT子句作用于結果表。删除結果表中不包含在select_list中的列。如果SELECT子句包含DISTINCT關鍵字,DBMS将從結果中删除重複的行。

(6)如果有ORDER BY子句,按指定的排序規則對結果進行排序。