Oracle 表串連方式(1)---

來源:互聯網
上載者:User

標籤:ural   沒有   操作符   使用   指定   注意事項   限制   類型   csharp   

Oracle 表之間的串連分為三種:1. 內串連(自然串連)2. 外串連(1)左外串連 (左邊的表不加限制)       (2)右外串連(右邊的表不加限制)        (3)全外串連(左右兩表都不加限制)3. 自串連(同一張表內的串連)SQL的標準文法:select table1.column,table2.columnfrom 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 下面舉例來說明內串連:SQL> Select a.id,a.name,b.name from dave a inner join bl b on a.id=b.id;   -- 標準寫法SQL> Select a.id,a.name,b.name from dave a join bl b on a.id=b.id;  -- 這裡省略了inner 關鍵字SQL> Select a.id,a.name,b.name from dave a,bl b where a.id=b.id;  -- select 多表查詢從這三個SQL 的結果我們也可以看出,他們的作用是一樣的。1.3 自然串連(Natural join)自然串連是在兩張表中尋找那些資料類型和列名都相同的欄位,然後自動地將他們串連起來,並返回所有符合條件按的結果。SQL> Select id,name from dave a natural join bl b;  這裡我們並沒有指定串連的條件,實際上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;因此,我們也可以將自然串連理解為內串連的一種。 有關自然串連的一些注意事項:(1).如果做自然串連的兩個表的有多個欄位都滿足有相同名稱個類型,那麼他們會被作為自然串連的條件。(2).如果自然串連的兩個表僅是欄位名稱相同,但資料類型不同,那麼將會返回一個錯誤。二. 自串連自串連(self join)是SQL語句中經常要用的串連方式,使用自串連可以將自身表的一個鏡像當作另一個表來對待,從而能夠得到一些特殊的資料。樣本:在oracle的scott的schema中有一個表是emp。在emp中的每一個員工都有自己的mgr(經理),並且每一個經理自身也是公司的員工,自身也有自己的經理。下面我們需要將每一個員工自己的名字和經理的名字都找出來。這時候我們該怎麼做呢?如果我們有兩張這樣的表分別教worker和mgr,那麼我們就很好寫SQL語句。Select worker.name,Mgr.nameFrom worker,mgrWhere worker.id = mgr.id; 但現在我們只有一張emp表。所以我們可以採用自串連。自串連的本意就是將一張表看成多張表來做串連。我們可以這樣來寫SQL語句:select work.ename worker,mgr.ename  manager from scott.emp work, scott.emp mgr where work.mgr = mgr.empno order by work.ename;

  

Oracle 表串連方式(1)---

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.