sql語句中(+)的做用

演示示例

說明:如下示例中,表a是員工表,有a,b,c,d四個員工,性別都是男性m。表b是工資表,有a,b,d四個員工,工資對應的是1000,2000,4000。而後分別演示帶(+)符號的和不帶(+)符號的,結果以下。html

SQL> select * from a;

NAME                 SEX
-------------------- -----
a                    m
b                    m
c                    m
d                    m

SQL> select * from b;

NAME                      MONEY
-------------------- ----------
a                          1000
b                          2000
d                          4000

SQL> select a.name,b.money from a,b where a.name=b.name(+);

NAME                      MONEY
-------------------- ----------
a                          1000
b                          2000
d                          4000
c

SQL> select a.name,b.money from a,b where a.name=b.name;

NAME                      MONEY
-------------------- ----------
a                          1000
b                          2000
d                          4000

可見,帶(+)號時,a表中的全部人都在,即便工資爲空。不帶(+)時,a表中的沒有出現工資爲空的員工c。程序員

對(+)號的解釋

(+) 表示外鏈接。條件關聯時,通常只列出表中知足鏈接條件的數據。若是條件的一邊出現(+),則另外一邊的表就是主表,主表中的全部記錄都會出現,即便附表中有的記錄爲空sql

(+)的擴展:SQL錶鏈接

SQL錶鏈接分類

內鏈接,外鏈接,交叉鏈接,其中外鏈接包括左鏈接和右鏈接。數據庫

SQL錶鏈接示例

內鏈接windows

SQL> select a.name,b.money from a,b where a.name=b.name;

SQL> select a.name,b.money from a inner join b on a.name=b.name;

左鏈接ide

SQL> select a.name,b.money from a,b where a.name=b.name(+);

SQL> select a.name,b.money from a left join b on a.name=b.name;

右鏈接學習

SQL> select a.name,b.money from a right join b on a.name=b.name;

SQL> select a.name,b.money from a,b where a.name(+)=b.name;

交叉鏈接ui

SQL> select a.name,b.money from a full join b on a.name=b.name;

NAME                      MONEY
-------------------- ----------
a                          1000
b                          2000
c
d                          4000

SQL> select a.name,b.money from a,b where a.name(+)=b.name(+);
select a.name,b.money from a,b where a.name(+)=b.name(+)
                                              *
第 1 行出現錯誤:
ORA-01468: 一個謂詞只能引用一個外部聯接的表

因此(+)只是表示外鏈接,並不表示交叉鏈接。url

參考:code

SQL Server 數據庫 (+) 這個是什麼意思

SQL錶鏈接查詢(inner join、full join、left join、right join)


記得幫我點贊哦!

精心整理了計算機各個方向的從入門、進階、實戰的視頻課程和電子書,按照目錄合理分類,總能找到你須要的學習資料,還在等什麼?快去關注下載吧!!!

resource-introduce

念念不忘,必有迴響,小夥伴們幫我點個贊吧,很是感謝。

我是職場亮哥,YY高級軟件工程師、四年工做經驗,拒絕鹹魚爭當龍頭的斜槓程序員。

聽我說,進步多,程序人生一把梭

若是有幸能幫到你,請幫我點個【贊】,給個關注,若是能順帶評論給個鼓勵,將不勝感激。

職場亮哥文章列表:更多文章

wechat-platform-guide-attention

本人全部文章、回答都與版權保護平臺有合做,著做權歸職場亮哥全部,未經受權,轉載必究!

相關文章
相關標籤/搜索