目錄

  • 表的加減法

  • 聯(lián)結(jié)(以列為單位)

 

一、表的加減法

  1.集合:記錄的集合(表、視圖和查詢的執(zhí)行結(jié)果)。

 

  2.UNION(并集):表的加法

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn) 初始化測(cè)試數(shù)據(jù)

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

 圖

  并集圖,會(huì)移除重復(fù)的記錄。

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

 

  3.注意事項(xiàng):

 ?。?)作為運(yùn)算對(duì)象的記錄的列數(shù)必須相同

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

圖:列數(shù)不匹配

 ?。?)作為運(yùn)算對(duì)象的記錄中列的類型必須一致

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

圖:類型不一致

  【備注】可以使用類型轉(zhuǎn)換函數(shù) CAST

 

  4.ALL 選項(xiàng) - 包含重復(fù)行的集合運(yùn)算

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

圖:保留重復(fù)行

 

   5.INTERSECT(交集) - 選取表中公共的部分

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

   類似該并集圖:

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

 

  6.EXCEPT(差集) - 記錄的減法

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

  需要注意,被減數(shù)和減數(shù)的位置調(diào)換,結(jié)果是不同的:

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

 

二、聯(lián)結(jié)(以列為單位)

  1.上一節(jié)集合運(yùn)算的特征是以“行方向”為單位操作,在進(jìn)行集合運(yùn)算時(shí)會(huì)導(dǎo)致記錄行數(shù)的增減,不過隊(duì)列不會(huì)影響,因?yàn)樗鼈兊牧袛?shù)要一致。

  2.聯(lián)結(jié)(JOIN)運(yùn)算:“添加列”的運(yùn)算,從其它表的列添加過來。

  3.INNER JOIN - 內(nèi)聯(lián)結(jié)

  聯(lián)結(jié)運(yùn)算:以 A 表中的列作為橋梁,將 B 表中滿足同樣條件的列匯集到同一結(jié)果中。

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

  要點(diǎn):

   ?、貴ROM 子句:FROM dbo.TenpoShohin AS TS INNER JOIN dbo.Shohin AS S 

    這里使用 INNER JOIN 將兩張表關(guān)聯(lián)起來,TS 和 S 分別是兩張表的別名,可以增強(qiáng)表的可讀性。

   ?、贠N 子句:ON S.shohin_id = TS.shohin_id

    ON 后面記載的是聯(lián)結(jié)條件,聯(lián)結(jié)兩張表所使用的的列,可以稱為聯(lián)結(jié)鍵。

    這是一個(gè)比較直觀的例子,兩個(gè)小鎮(zhèn),中間隔了一條河,通過 ON 子句作為他們兩者之間的橋梁。

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

   ?、跾ELECT 子句:SELECT TS.tenpo_id ,TS.tenpo_mei ,S.shohin_mei ,S.hanbai_tanka

    采用“<表的別名>.<列名>”格式來顯示,這樣就可以清楚的知道該列來自哪張表。

 

  4.OUTER JOIN - 外聯(lián)結(jié)

  photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

  (1)要點(diǎn):

   ?、龠x取出單張表中全部的信息

    與之前的內(nèi)聯(lián)表相比,15 行比之前 13行多了 2 行。因?yàn)槎喑龅?2 條記錄在 TenpoShohin 表并不存在。內(nèi)聯(lián)結(jié)只能選取出同時(shí)存在于兩張表中的數(shù)據(jù),而外聯(lián)結(jié),只要數(shù)據(jù)存在某一張表中,就能夠讀取出來。也就是說,希望生成固定行數(shù)的記錄,就需要使用外聯(lián)結(jié)。

   ?、谥鞅淼倪x擇

    最終的結(jié)果只會(huì)包含主表內(nèi)所有的數(shù)據(jù)。指定主表的關(guān)鍵字是 LEFT 和 RIGHT,使用 LEFT 時(shí)左側(cè)的表為主表,使用 RIGHT 時(shí)右側(cè)的表為主表(如上圖的 Shohin 表)。

  【備注】外聯(lián)結(jié)使用 LEFT 和 RIGHT 來指定主表。

 

  5.多張表的聯(lián)結(jié)

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn) 初始化測(cè)試數(shù)據(jù)

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

  3 表聯(lián)結(jié)就是多 1 行 JOIN 子句而已,多表聯(lián)結(jié)就多幾行 JOIN 字句唄。

 

  6.CROSS JOIN(笛卡兒積)- 交叉聯(lián)結(jié)

  這種聯(lián)結(jié)在實(shí)際業(yè)務(wù)中很少使用。

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

  TenpoShohin 表 13 條記錄, Shohin 表 8 條記錄,13*8=104 條記錄。

 

備注

  這里采用 MS SQL Server 進(jìn)行驗(yàn)證,不保證所有的 DBMS 執(zhí)行結(jié)果正確。

  本章思維導(dǎo)圖下載

 

《SQL 基礎(chǔ)知識(shí)梳理》系列

  《SQL 基礎(chǔ)知識(shí)梳理(一) - 數(shù)據(jù)庫(kù)與 SQL

  《SQL 基礎(chǔ)知識(shí)梳理(二) - 查詢基礎(chǔ)

  《SQL 基礎(chǔ)知識(shí)梳理(三) - 聚合和排序

  《SQL 基礎(chǔ)知識(shí)梳理(四) - 數(shù)據(jù)更新

  《SQL 基礎(chǔ)知識(shí)梳理(五) - 復(fù)雜查詢

  《SQL 基礎(chǔ)知識(shí)梳理(六)- 函數(shù)、謂詞、CASE 表達(dá)式

  《SQL 基礎(chǔ)知識(shí)梳理(七)- 集合運(yùn)算

 

 


【博主】反骨仔

【原文】http://www.cnblogs.com/liqingwen/p/6575668.html 

【參考】《SQL ゼロからはじめるデータベース操作》

 

  • 感謝您的閱讀。喜歡的、有用的就請(qǐng)大哥大嫂們賞幾個(gè)小錢花花,沒錢的就請(qǐng)高抬貴手“推薦一下”吧!你的物質(zhì)和精神支持是博主強(qiáng)大的寫作動(dòng)力。歡迎轉(zhuǎn)載!

  • 博主的文章沒有高度、深度和廣度,只是湊字?jǐn)?shù)。由于博主的水平不高(其實(shí)是個(gè)菜B),不足和錯(cuò)誤之處在所難免,希望大家能夠批評(píng)指出。

  • 我的博客:http://www.cnblogs.com/liqingwen/

  • 博主是利用讀書、參考、引用、抄襲、復(fù)制和粘貼等多種方式打造成自己的純鍍 24k 文章,請(qǐng)?jiān)彶┲鞒蔀橐粋€(gè)無恥的文檔搬運(yùn)工!

目錄

  • 表的加減法

  • 聯(lián)結(jié)(以列為單位)

 

一、表的加減法

  1.集合:記錄的集合(表、視圖和查詢的執(zhí)行結(jié)果)。

 

  2.UNION(并集):表的加法

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn) 初始化測(cè)試數(shù)據(jù)

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

 圖

  并集圖,會(huì)移除重復(fù)的記錄。

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

 

  3.注意事項(xiàng):

 ?。?)作為運(yùn)算對(duì)象的記錄的列數(shù)必須相同

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

圖:列數(shù)不匹配

 ?。?)作為運(yùn)算對(duì)象的記錄中列的類型必須一致

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

圖:類型不一致

  【備注】可以使用類型轉(zhuǎn)換函數(shù) CAST

 

  4.ALL 選項(xiàng) - 包含重復(fù)行的集合運(yùn)算

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

圖:保留重復(fù)行

 

   5.INTERSECT(交集) - 選取表中公共的部分

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

   類似該并集圖:

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

 

  6.EXCEPT(差集) - 記錄的減法

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

  需要注意,被減數(shù)和減數(shù)的位置調(diào)換,結(jié)果是不同的:

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

 

二、聯(lián)結(jié)(以列為單位)

  1.上一節(jié)集合運(yùn)算的特征是以“行方向”為單位操作,在進(jìn)行集合運(yùn)算時(shí)會(huì)導(dǎo)致記錄行數(shù)的增減,不過隊(duì)列不會(huì)影響,因?yàn)樗鼈兊牧袛?shù)要一致。

  2.聯(lián)結(jié)(JOIN)運(yùn)算:“添加列”的運(yùn)算,從其它表的列添加過來。

  3.INNER JOIN - 內(nèi)聯(lián)結(jié)

  聯(lián)結(jié)運(yùn)算:以 A 表中的列作為橋梁,將 B 表中滿足同樣條件的列匯集到同一結(jié)果中。

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

  要點(diǎn):

   ?、貴ROM 子句:FROM dbo.TenpoShohin AS TS INNER JOIN dbo.Shohin AS S 

    這里使用 INNER JOIN 將兩張表關(guān)聯(lián)起來,TS 和 S 分別是兩張表的別名,可以增強(qiáng)表的可讀性。

    ②ON 子句:ON S.shohin_id = TS.shohin_id

    ON 后面記載的是聯(lián)結(jié)條件,聯(lián)結(jié)兩張表所使用的的列,可以稱為聯(lián)結(jié)鍵。

    這是一個(gè)比較直觀的例子,兩個(gè)小鎮(zhèn),中間隔了一條河,通過 ON 子句作為他們兩者之間的橋梁。

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

    ③SELECT 子句:SELECT TS.tenpo_id ,TS.tenpo_mei ,S.shohin_mei ,S.hanbai_tanka

    采用“<表的別名>.<列名>”格式來顯示,這樣就可以清楚的知道該列來自哪張表。

 

  4.OUTER JOIN - 外聯(lián)結(jié)

  photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

 ?。?)要點(diǎn):

    ①選取出單張表中全部的信息

    與之前的內(nèi)聯(lián)表相比,15 行比之前 13行多了 2 行。因?yàn)槎喑龅?2 條記錄在 TenpoShohin 表并不存在。內(nèi)聯(lián)結(jié)只能選取出同時(shí)存在于兩張表中的數(shù)據(jù),而外聯(lián)結(jié),只要數(shù)據(jù)存在某一張表中,就能夠讀取出來。也就是說,希望生成固定行數(shù)的記錄,就需要使用外聯(lián)結(jié)。

    ②主表的選擇

    最終的結(jié)果只會(huì)包含主表內(nèi)所有的數(shù)據(jù)。指定主表的關(guān)鍵字是 LEFT 和 RIGHT,使用 LEFT 時(shí)左側(cè)的表為主表,使用 RIGHT 時(shí)右側(cè)的表為主表(如上圖的 Shohin 表)。

  【備注】外聯(lián)結(jié)使用 LEFT 和 RIGHT 來指定主表。

 

  5.多張表的聯(lián)結(jié)

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn) 初始化測(cè)試數(shù)據(jù)

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

  3 表聯(lián)結(jié)就是多 1 行 JOIN 子句而已,多表聯(lián)結(jié)就多幾行 JOIN 字句唄。

 

  6.CROSS JOIN(笛卡兒積)- 交叉聯(lián)結(jié)

  這種聯(lián)結(jié)在實(shí)際業(yè)務(wù)中很少使用。

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

  TenpoShohin 表 13 條記錄, Shohin 表 8 條記錄,13*8=104 條記錄。

 

備注

  這里采用 MS SQL Server 進(jìn)行驗(yàn)證,不保證所有的 DBMS 執(zhí)行結(jié)果正確。

  本章思維導(dǎo)圖下載

 

《SQL 基礎(chǔ)知識(shí)梳理》系列

  《SQL 基礎(chǔ)知識(shí)梳理(一) - 數(shù)據(jù)庫(kù)與 SQL

  《SQL 基礎(chǔ)知識(shí)梳理(二) - 查詢基礎(chǔ)

  《SQL 基礎(chǔ)知識(shí)梳理(三) - 聚合和排序

  《SQL 基礎(chǔ)知識(shí)梳理(四) - 數(shù)據(jù)更新

  《SQL 基礎(chǔ)知識(shí)梳理(五) - 復(fù)雜查詢

  《SQL 基礎(chǔ)知識(shí)梳理(六)- 函數(shù)、謂詞、CASE 表達(dá)式

  《SQL 基礎(chǔ)知識(shí)梳理(七)- 集合運(yùn)算

 

 


【博主】反骨仔

【原文】http://www.cnblogs.com/liqingwen/p/6575668.html 

【參考】《SQL ゼロからはじめるデータベース操作》

 

  • 感謝您的閱讀。喜歡的、有用的就請(qǐng)大哥大嫂們賞幾個(gè)小錢花花,沒錢的就請(qǐng)高抬貴手“推薦一下”吧!你的物質(zhì)和精神支持是博主強(qiáng)大的寫作動(dòng)力。歡迎轉(zhuǎn)載!

  • 博主的文章沒有高度、深度和廣度,只是湊字?jǐn)?shù)。由于博主的水平不高(其實(shí)是個(gè)菜B),不足和錯(cuò)誤之處在所難免,希望大家能夠批評(píng)指出。

  • 我的博客:http://www.cnblogs.com/liqingwen/

  • 博主是利用讀書、參考、引用、抄襲、復(fù)制和粘貼等多種方式打造成自己的純鍍 24k 文章,請(qǐng)?jiān)彶┲鞒蔀橐粋€(gè)無恥的文檔搬運(yùn)工!

http://www.cnblogs.com/liqingwen/p/6575668.html