Oracle 表串連方式(內串連/外串連/自串連) 詳解

來源:互聯網
上載者:User

Oracle 表之間的串連分為三種:

1. 內串連(自然串連)

2. 外串連
(1)左外串連 (左邊的表不加限制)
(2)右外串連(右邊的表不加限制)
(3)全外串連(左右兩表都不加限制)

3. 自串連(同一張表內的串連)
SQL的標準文法:
select table1.column,table2.column
from table1 [inner | left | right | full ] join table2 on table1.column1 = table2.column2;
inner join 表示內串連;
left join表示左外串連;
right join表示右外串連;
full join表示完全外串連;
on子句 用於指定串連條件。
注意:
如果使用from子句指定內、外串連,則必須要使用on子句指定串連條件;
如果使用(+)操作符指定外串連,則必須使用where子句指定串連條件。

一. 內串連(Inner Join/Join)
1.1  Inner Join
Inner join邏輯運算子返回滿足第一個(頂端)輸入與第二個(底端)輸入聯結的每一行。這個和用select查詢多表是一樣的效果,所以內串連用的很少。
還有一點要說明的就是Join 預設就是inner join。 所以我們在寫內串連的時候可以省略inner 這個關鍵字。
1.2 下面舉例來說明內串連:
1.2.1 先建立2張測試表並插入資料:
SQL> select * from dave;
ID  NAME
---------- ----------
1  dave
2  bl
1  bl
2  dave
SQL> select * from bl;
ID  NAME
---------- ----------
1  dave
2  bl
1.2.3 用內連結進行查詢:
SQL> Select a.id,a.name,b.name from dave a inner join bl b on a.id=b.id;   -- 標準寫法
ID NAME       NAME
---------- ---------- ----------
1 dave       dave
2 bl         bl
1 bl         dave
2 dave       bl
SQL> Select a.id,a.name,b.name from dave a join bl b on a.id=b.id;  -- 這裡省略了inner 關鍵字
ID NAME       NAME
---------- ---------- ----------
1 dave       dave
2 bl         bl
1 bl         dave
2 dave       bl
SQL> Select a.id,a.name,b.name from dave a,bl b where a.id=b.id;  -- select 多表查詢
ID NAME       NAME
---------- ---------- ----------
1 dave       dave
2 bl         bl
1 bl         dave
2 dave       bl
從這三個SQL 的結果我們也可以看出,他們的作用是一樣的。
1.3 自然串連(Natural join)
自然串連是在兩張表中尋找那些資料類型和列名都相同的欄位,然後自動地將他們串連起來,並返回所有符合條件按的結果。
先看一下自然串連的例子:
SQL> Select id,name from dave a natural join bl b;
ID NAME
---------- ----------
1 dave
2 bl
這裡我們並沒有指定串連的條件,實際上oracle為我們自作主張的將,dave表中的id和name欄位與bl表中的id和name欄位進行了串連。也就是實際上相當於
SQL> Select dave.id,bl.name From dave join bl on dave.id = bl.id and dave.name=bl.name;
ID NAME
---------- ----------
1 dave
2 bl
因此,我們也可以將自然串連理解為內串連的一種。
有關自然串連的一些注意事項:
(1).如果做自然串連的兩個表的有多個欄位都滿足有相同名稱個類型,那麼他們會被作為自然串連的條件。
(2).如果自然串連的兩個表僅是欄位名稱相同,但資料類型不同,那麼將會返回一個錯誤。

  • 1
  • 2
  • 3
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.