最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

數(shù)據(jù)庫(kù)使用之union、union?all、各種join的用法區(qū)別解析

 更新時(shí)間:2025年02月06日 10:20:54   作者:我是蘇蘇  
這篇文章主要介紹了SQL中的Union和UnionAll的區(qū)別,包括去重與否以及使用時(shí)的注意事項(xiàng),還詳細(xì)解釋了Join關(guān)鍵字,包括innerjoin和leftjoin的區(qū)別,以及聯(lián)表?xiàng)l件的寫(xiě)法,需要的朋友可以參考下

一、Union 和Union All

1、區(qū)別:

Union去重,而Union All不去重。

2、注意點(diǎn):

1.被合并的每個(gè)SELECT語(yǔ)句的列數(shù)、數(shù)據(jù)類(lèi)型要相同(一一對(duì)應(yīng))。

2.使用Union時(shí),由于可去重性,可能導(dǎo)致數(shù)據(jù)丟失。

3.使用Union All時(shí),由于不可去重性,可能含重復(fù)的記錄。

3、具體舉例

【union】

【union all】

二、Join關(guān)鍵字的區(qū)別

 1.left join和inner join區(qū)別

【長(zhǎng)話(huà)短說(shuō)】inner join(內(nèi)連接)得到數(shù)據(jù)更少,直接剔除匹配不到的數(shù)據(jù)(剔除無(wú)關(guān)聯(lián)ID的數(shù)據(jù)),inner join = join。

【例子】如下圖所示,inner join不顯示紅框的數(shù)據(jù),left join會(huì)顯示

SELECT * FROM student s
LEFT JOIN score sc on s.id=sc.studentid

SELECT * FROM student s
INNER JOIN score sc on s.id=sc.studentid

【查詢(xún)匹配失敗的數(shù)據(jù)】

SELECT * FROM student s
LEFT JOIN score sc on s.id=sc.studentid
WHERE sc.id is null --查詢(xún)從表ID為空的數(shù)據(jù),就是聯(lián)表匹配不到的數(shù)據(jù)

2.聯(lián)表?xiàng)l件寫(xiě)法差異

--聯(lián)表:只要滿(mǎn)足關(guān)聯(lián)關(guān)系,B.IsDeleted是什么則返回什么
SELECT * FROM TABLEA A
LEFT JOIN TABLEB B ON A.ID=B.EXID 

--聯(lián)表不篩選:只要滿(mǎn)足關(guān)聯(lián)關(guān)系,B.IsDeleted≠0 則返回null
SELECT * FROM TABLEA A
LEFT JOIN TABLEB B ON A.ID=B.EXID AND B.IsDeleted=0

--聯(lián)表且篩選:只要滿(mǎn)足關(guān)聯(lián)關(guān)系,B.IsDeleted≠0 則返回null,假如是null則被where過(guò)濾掉
SELECT * FROM TABLEA A
LEFT JOIN TABLEB B ON A.ID=B.EXID
WHERE B.IsDeleted=0

--【結(jié)論】數(shù)據(jù)返回多少關(guān)系是:第一種=第二種>第三種
-- 因?yàn)榈诙N是A左聯(lián)篩選后的B表,左外保證A表完整性,和第一種一樣
-- 第三種是連接后再篩選,剔除的數(shù)據(jù)可能包含A表的數(shù)據(jù)

三、Cross Join

計(jì)算所有表的笛卡爾積:

總結(jié) 

到此這篇關(guān)于數(shù)據(jù)庫(kù)使用之union、union all、各種join的用法區(qū)別解析的文章就介紹到這了,更多相關(guān)union、union all、join用法區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

蕉岭县| 宕昌县| 阆中市| 沙洋县| 茂名市| 凤阳县| 容城县| 关岭| 息烽县| 鹿邑县| 察哈| 托里县| 柏乡县| 营口市| 分宜县| 龙口市| 志丹县| 尉犁县| 西贡区| 印江| 峨山| 都安| 乌拉特中旗| 平江县| 长葛市| 浙江省| 全南县| 抚松县| 黔西| 博爱县| 成安县| 大关县| 福鼎市| 宁武县| 丰顺县| 磴口县| 太和县| 青铜峡市| 浪卡子县| 衡东县| 阳城县|