SQL關於聯合的基本概念和示例

聯合的類型分爲 INNER JOIN 內部聯合,OUTER JOIN外部聯合,這兩種聯合的本質區別在於ON子句,前者ON子句的條件必須爲,後者沒有此限制

INNER JOIN 分爲
 等值與不等值聯合
        這種聯合的子句的條件指定一個表中的某個字段必須等於另一個表中的某個字段,這是一種最常用和最有意義的聯合
交叉聯合
        這種聯合沒有ON子句,聯合中列舉的所有表中的所有記錄行都被包含在結果集中,很顯然這就是兩張表的笛卡兒積,交叉聯合不是很有用
自聯合
        當一個表聯合到它自己,而不是其它表時,產生自聯合,自聯合的主要用途是尋找表中記錄的匹配對,自聯合與子查詢一起使用時比較有意義,在使用自聯合的時候一定要爲這個表或列賦予一個別名,自聯合通常非常複雜。

OUTER JOIN 分爲
左外部聯合
        當聯合A,B兩表時,需要其中A表的記錄始終出現在最終結果中可選擇使用此聯合,那麼不論A表記錄中是否存在滿足ON子句條件的記錄,A表的所有記錄都將顯示
右外部聯合
        此與左外部聯合正好相反,使用左還是右沒有任何規定,完全看你的愛好了
完全外部聯合
        這是前兩種聯合的特徵合,即聯合的所有表的記錄都顯示在最終結果中

 

以下示例爲SQL Server 2005數據庫引擎關於聯合時所使用的查詢計劃,爲SQL優化作指導。

數據庫引擎主要使用嵌套循環,哈西匹配,合併這三種方式處理聯合查詢,根據數據量的不同,是否有聚簇索引等輔助條件,數據庫引擎自動評估開銷選擇,但依舊可以強制使用Option參數指定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章