日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle 内、外连接

發(fā)布時間:2025/3/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle 内、外连接 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、Oracle連接類型

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

????1、內連接

????????????①等值連接

????????????②非等值連接

????????????③自然連接 ? ???

????2、外連接

????????????①左外連接

????????????②右外連接

????????????③全外連接 ? ??

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

????????????????????????????

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

t1表
字段x字段y
19
28
37

三、內連接

????1、內連接是通過inner join進行多表關聯(lián),展示查詢結果,示例如下:

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

????? ?效果展示:

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

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

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

????3、inner join可以簡化為join,但是實際使用中不建議這樣書寫,因為可讀性不高。

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

? ? 5、不等值連接可以用where和inner join兩種方式實現(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的展示結果是相同的。

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

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

四、外連接

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

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

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

????3、關于(+)使用的注意事項:

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

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

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

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

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

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

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

轉載于:https://blog.51cto.com/dushuai/1562614

總結

以上是生活随笔為你收集整理的Oracle 内、外连接的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。