Oracle內(nèi)、外連接

一、Oracle連接類型

成都創(chuàng)新互聯(lián)是一家專業(yè)提供寬甸企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為寬甸眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

    ☆說明:按照自己的理解劃分的類型,并不是官方定義。

    1、內(nèi)連接

            ①等值連接

            ②非等值連接

            ③自然連接      

    2、外連接

            ①左外連接

            ②右外連接

            ③全外連接     

二、表數(shù)據(jù)準(zhǔn)備

                            

t表
字段a字段b
118
228
338
4NULL

t1表
字段x字段y
19
28
37

三、內(nèi)連接

    1、內(nèi)連接是通過inner join進(jìn)行多表關(guān)聯(lián),展示查詢結(jié)果,示例如下:

        SQL>select * from t inner join t1 on t.a=t1.x;

       效果展示:

Oracle 內(nèi)、外連接

        說明:通過t表inner join t1表,我們得到了上圖的展示效果。

    2、同樣實(shí)現(xiàn)上圖中的查詢結(jié)果,我們還可以利用等值連接的方式實(shí)現(xiàn)

        SQL>select * from t,t1 where t.a=t1.x;

    3、inner join可以簡(jiǎn)化為join,但是實(shí)際使用中不建議這樣書寫,因?yàn)榭勺x性不高。

    4、通俗的理解是等值連接、非等值連接、自然連接都是內(nèi)連接這個(gè)大范疇的具體表現(xiàn)形式。

    5、不等值連接可以用where和inner join兩種方式實(shí)現(xiàn)

        SQL>select * from t inner join t1 on t.a<>t1.x;

        SQL>select * from t,t1 where t.a<>t1.x;
        上面這兩句sql的展示結(jié)果是相同的。

    6、自連接(self join)是SQL語句中經(jīng)常要用的連接方式,使用自連接可以將自身表的一個(gè)鏡像當(dāng)作另一個(gè)表來對(duì)待,從而能夠得到一些特殊的數(shù)據(jù)。

        例如:select * from employee worker,employee manger where worker.id=manger.id

四、外連接

    1、左外連接:通過關(guān)鍵字left join實(shí)現(xiàn),全寫是left out join,實(shí)際操作過程中一般寫作left join,還可以通過在右側(cè)連接值后加(+)來代替,左連接的意思是兩表關(guān)聯(lián),顯示查詢數(shù)目以左表為準(zhǔn),但是約束受到右表的影響,對(duì)于不符合等值的情況,用NULL代替,如下例:

Oracle 內(nèi)、外連接說明:首先通過等值連接,正常把前3行數(shù)據(jù)關(guān)聯(lián)顯示出來,之所以顯示第4行是因?yàn)閟ql語句是左連接,正如我們所述,數(shù)據(jù)展示條數(shù)以左表為準(zhǔn),但是不符合要求的統(tǒng)統(tǒng)用NULL進(jìn)行了填充。

    2、右連接:與左連接相反,核心思想相同,只要熟練掌握左連接,右連接自然無師自通。

    3、關(guān)于(+)使用的注意事項(xiàng):

(+)操作符只能出現(xiàn)在where子句中,并且不能與outer join語法同時(shí)使用。

當(dāng)使用(+)操作符執(zhí)行外連接時(shí),如果在where子句中包含有多個(gè)條件,則必須在所有條件中都包含(+)操作符

(+)操作符只適用于列,而不能用在表達(dá)式上。

(+)操作符不能與or和in操作符一起使用。

(+)操作符只能用于實(shí)現(xiàn)左外連接和右外連接,而不能用于實(shí)現(xiàn)完全外連接。 

4、全外連接:通過full join關(guān)鍵字連接實(shí)現(xiàn),左邊和右表都不受限制,兩表都不滿足條件的情況都用NULL填充,全外連接不支持(+)這種寫法,即不能在左表和右表兩邊都寫(+)。

        SQL> select * from t full join t1 on t.a=t1.x;

分享文章:Oracle內(nèi)、外連接
文章轉(zhuǎn)載:http://bm7419.com/article12/igoogc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)標(biāo)簽優(yōu)化、網(wǎng)站建設(shè)、搜索引擎優(yōu)化、品牌網(wǎng)站制作網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)