亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQLServer 2008 技術內幕——T-SQL 查詢 筆記

系統 1812 0
原文: SQLServer 2008 技術內幕——T-SQL 查詢 筆記

1、SQL編程有許多獨特之處,如:面向集合的思維方式、查詢元素的邏輯處理順序、三值邏輯。如果不掌握這些知識就開始用SQL編程,得到的將是冗余的、性能低下的代碼,而且難以維護。

2、在SQLServer中負責生成實際工作計劃(執行計劃)的組件是:查詢優化器(query optimizer)。只有在確保結果集正確的前提下,優化器才會走捷徑。明確區分查詢的邏輯處理和物理處理是非常重要的。

3、邏輯查詢的各個階段:

    (5) SELECT (5-2) DISTINCT (5-3) TOP (<top_specification>) (5-1) <select_list>

(1) FROM (1-J) <left_table> <join_type> JOIN <right_table> ON <on_predicate>

     |(1-A) <left_table> <apply_type> APPLY <right_table_expression> AS <alias>

     |(1-P) <left_table> PIVOT (<pivot_specification>) AS <alias>

     |(1-U) <left_table> UNPIVOT (<unpivot_specification>) AS <alias>

(2) WHERE <where_predicate>

(3) GROUP BY <group_by_specification>

(4) HAVING <having_predicate>

(6) ORDER BY <order_by_list>;


  


第一步:FROM :表示出查詢的來源表,在聯結運算中涉及的階段是(1-J1)笛卡兒積、(1-J2)ON篩選器和(1-J3)添加外部行。并生成虛擬表VT1。

1.1、笛卡兒積:兩表執行笛卡兒積,生成虛擬表VT1-J1。

1.2、ON篩選器:針對VT1-J1中滿足ON為true的行,插入VT1-J2。

1.3、添加外部行:如果指定了OUTER JOIN (相對于CROSS JOIN或INNER JOIN ),則將保留表中沒有匹配的行,作為外部行添加,生成VT1-J3。

第二步:WHERE:根據WHERE 子句中的謂詞對VT1中的數據進行行篩選,只對結果為TRUE的行,插入VT2。

第三步:GROUP BY :根據group by中的列表,將VT2進行分組,每一組只有一個結果行,生成VT3。

第四步:HAVING:根據HAVING出現的謂詞對VT3金信篩選,只讓結果為TRUE的組才插入VT4。

第五步:SELECT:處理SELECT 子句中的元素,產生VT5。

5.1、計算表達式:根據SELECT 列表中的表達式,生成VT5-1。

5.2、DISTINCT:刪除VT5-1中重復的行,生成VT5-2。

5.3、TOP:根據ORDER BY 子句定義邏輯排序,從VT5-2中選擇前面指定數量或百分比的行,生產VT5-3。

第六步:ORDER BY :根據ORDER BY 子句中指定的列名,對VT5-3進行排序。生成 游標 VC6。

對于三值邏輯:

a、所有的查詢篩選器(ON、WHERE 和HAVING )都把null當作FALSE來處理。

b、check約束中的null值被當作TRUE來對待。

c、UNIQUE約束、集合運算(UNION 和EXCEPT)、及排序和分組操作,認為兩個null是相等的。

注意:

1、如果FROM 子句中有多個表運算符,則按從左到右的順序進行處理。每個表運算符的結果作為下一個表運算符的左輸入,最后生成虛擬表作為下一階段的輸入。

2、因為在WHERE之前還沒對數據分組,所以WHERE 子句不能使用聚合。在篩選器中,ON對保留表中部分行的刪除并不是最終的,而WHERE是最終的。只有使用外聯結的時候,ON和WHERE才有邏輯區別。

3、如果在查詢中指定了GROUP BY ,后續所有步驟都只能在指定的分組上操作。

4、HAVING是唯一可用于分組數據的篩選器。

5、由于SQL具有多個運算同時計算(all-at-once operation),所以SELECT 語句中的邏輯順序是無關的。

6、ORDER BY 是唯一可以使用SELECT 中別名的步驟。







SQLServer 2008 技術內幕——T-SQL 查詢 筆記


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91婷婷色 | 视频在线观看入口一二三2021 | 九九九国产视频 | 日本一级特黄aa大片24免费 | 日日噜噜噜夜夜爽爽狠狠69 | 精品成人久久 | 在线日韩欧美 | 精品国产欧美一区二区最新 | 深夜免费 | 久久国产精品久久久久久 | 日韩欧美精品一区二区 | 久久99热不卡精品免费观看 | 国产剧情一区二区三区 | 国产精品视频第一页 | 亚日韩| 国产成人精品aaaa视频一区 | 亚洲欧美日韩国产精品第不页 | 久久久久久天天夜夜天天 | 欧美在线一级视频 | 波多野结衣一区二区 | 久久成人国产精品二三区 | 精品一区国产 | 成人免费一级毛片在线播放视频 | 一级毛片免费完整视频 | 激情综合网色播五月 | 国产97在线视频观看 | 高清国产天干天干天干不卡顿 | 奇米影视在线播放 | 久久精品国产精品亚洲20 | 久久天天躁狠狠躁夜夜2020一 | 日韩欧美一区二区三区四区 | 国产成人禁片免费观看视频 | 久久咪咪 | 成人不卡视频 | 欧美激情久久久久久久大片 | 香蕉视频黄色在线观看 | 99re热在线视频 | 狠狠色综合久久婷婷色天使 | 97色精品视频在线观看免费 | 久久久久久综合成人精品 | 欧美国产日产精品免费视频 |