一、Oracle連接類(lèi)型
成都創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供寬甸企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、H5開(kāi)發(fā)、小程序制作等業(yè)務(wù)。10年已為寬甸眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
☆說(shuō)明:按照自己的理解劃分的類(lèi)型,并不是官方定義。
1、內(nèi)連接
①等值連接
②非等值連接
③自然連接
2、外連接
①左外連接
②右外連接
③全外連接
二、表數(shù)據(jù)準(zhǔn)備
t表 | |
字段a | 字段b |
1 | 18 |
2 | 28 |
3 | 38 |
4 | NULL |
t1表 | |
字段x | 字段y |
1 | 9 |
2 | 8 |
3 | 7 |
三、內(nèi)連接
1、內(nèi)連接是通過(guò)inner join進(jìn)行多表關(guān)聯(lián),展示查詢結(jié)果,示例如下:
SQL>select * from t inner join t1 on t.a=t1.x;
效果展示:
說(shuō)明:通過(guò)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í)際使用中不建議這樣書(shū)寫(xiě),因?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語(yǔ)句中經(jīng)常要用的連接方式,使用自連接可以將自身表的一個(gè)鏡像當(dāng)作另一個(gè)表來(lái)對(duì)待,從而能夠得到一些特殊的數(shù)據(jù)。
例如:select * from employee worker,employee manger where worker.id=manger.id
四、外連接
1、左外連接:通過(guò)關(guān)鍵字left join實(shí)現(xiàn),全寫(xiě)是left out join,實(shí)際操作過(guò)程中一般寫(xiě)作left join,還可以通過(guò)在右側(cè)連接值后加(+)來(lái)代替,左連接的意思是兩表關(guān)聯(lián),顯示查詢數(shù)目以左表為準(zhǔn),但是約束受到右表的影響,對(duì)于不符合等值的情況,用NULL代替,如下例:
說(shuō)明:首先通過(guò)等值連接,正常把前3行數(shù)據(jù)關(guān)聯(lián)顯示出來(lái),之所以顯示第4行是因?yàn)閟ql語(yǔ)句是左連接,正如我們所述,數(shù)據(jù)展示條數(shù)以左表為準(zhǔn),但是不符合要求的統(tǒng)統(tǒng)用NULL進(jìn)行了填充。
2、右連接:與左連接相反,核心思想相同,只要熟練掌握左連接,右連接自然無(wú)師自通。
3、關(guān)于(+)使用的注意事項(xiàng):
(+)操作符只能出現(xiàn)在where子句中,并且不能與outer join語(yǔ)法同時(shí)使用。
當(dāng)使用(+)操作符執(zhí)行外連接時(shí),如果在where子句中包含有多個(gè)條件,則必須在所有條件中都包含(+)操作符
(+)操作符只適用于列,而不能用在表達(dá)式上。
(+)操作符不能與or和in操作符一起使用。
(+)操作符只能用于實(shí)現(xiàn)左外連接和右外連接,而不能用于實(shí)現(xiàn)完全外連接。
4、全外連接:通過(guò)full join關(guān)鍵字連接實(shí)現(xiàn),左邊和右表都不受限制,兩表都不滿足條件的情況都用NULL填充,全外連接不支持(+)這種寫(xiě)法,即不能在左表和右表兩邊都寫(xiě)(+)。
SQL> select * from t full join t1 on t.a=t1.x;
分享文章:Oracle內(nèi)、外連接
文章轉(zhuǎn)載:http://aaarwkj.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í)需注明來(lái)源: 創(chuàng)新互聯(lián)