天天看點

select語句的執行步驟:

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

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

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

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

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

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

 (7)對于互動式的SELECT語句,在螢幕上顯示結果,對于嵌入式SQL,使用遊标結果傳遞給宿主程式中。