posts - 66,comments - 41,trackbacks - 0
          當執行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子句,按指定的排序規則對結果進行排序。

          (7)對于交互式的SELECT語句,在屏幕上顯示結果,對于嵌入式SQL,使用游標將結果傳遞給宿主程序中。

            以上就是SQL SELECT語句的基本執行過程。


          MSN:
          posted on 2007-12-26 10:49 kylixlu 閱讀(187) 評論(0)  編輯  收藏 所屬分類: Database
          主站蜘蛛池模板: 杨浦区| 开江县| 普洱| 宁陵县| 布尔津县| 内黄县| 孟连| 英山县| 宝坻区| 万载县| 兴安盟| 庐江县| 河池市| 滦平县| 襄汾县| 泽库县| 安泽县| 肥乡县| 基隆市| 乌什县| 南澳县| 霍林郭勒市| 阳春市| 贵溪市| 崇信县| 怀宁县| 平邑县| 阳城县| 安多县| 普兰店市| 乌兰县| 杭州市| 临潭县| 德化县| 蓬溪县| 阿荣旗| 郓城县| 宜昌市| 惠水县| 教育| 阿克|