Oracle 常用串連查詢方法和函數

來源:互聯網
上載者:User

一:Oracle常用的串連查詢方法(以oracle內建的表做的練習)

1、左外串連(left outer join/left join)

left  join是以左表的記錄為基礎的,左表中的記錄會全部顯示,右表只顯示符合查詢條件的記錄。右表不足的地方用null填充。

例如:select * from emp t1 left join dept t2 on t1.deptno=t2.deptno;

左外串連可以用(+)來實現,哪一個表後面有‘(+)’表示這張表是匹配表,用‘(+)’就用關鍵字where

例如:select * from emp t1 left join dept t2 on t1.deptno=t2.deptno;

2、右外串連(right outer join/right join)

right join 是以右表的記錄為基礎的,右表的記錄會全部顯示,左表只顯示符合查詢條件的記錄,左表不足的地方用null填充。

例如:select * from emp t1 left join dept t2 on t1.deptno=t2.deptno;

右外串連可以用‘(+)’實現,用‘(+)’要用where關鍵字。

左/右外串連的兩種方式的區別:用‘(+)’實現,左/右表為全表掃描,右/左表為索引掃描。用另外一種方式為兩個表都是全表掃描。

3、全外串連(full outer join/full join)

左表和右表都不做限制,所有記錄都顯示,兩表不足的地方用null填充。全外串連不支援(+)這種寫法。

例如:select * from dave a full join bl b on a.id = b.id;

4、自串連

自串連是sql語句中經常用到的串連方式,使用自串連可以將自身表的一個鏡像當作另外一個表來對待,從而能夠得到一些特殊的資料。

例如:查詢emp表的員工的姓名和員工的經理的姓名

select t1.ename "員工",'的',t2.ename "經理" from emp t1,emp t2 where t1.mgr=t2.empno;

5、自然串連

自然串連是在兩張表中尋找那些類名和列名都相同的欄位,然後自動地將他們串連起來,並返回所有合格結果。

例如:select deptno from emp  natural join dept  ;

這裡並沒有指定串連的條件,實際上 oracle 為我們只做主張的將 emp表中的deptno欄位與dept表中的deptno欄位進行了串連。也就是相當於:

select deptno from emp t1 natural join dept t2 ;

6、內串連 (inner join/join)

inner join返回滿足第一個(頂端)輸入與第二個(底端)輸入聯結的每一行。這個和select查詢多表的效果一樣,所以內連結用的很少。

select t1.ename from emp t1 inner join dept t2 on t1.deptno=t2.deptno;

  • 1
  • 2
  • 下一頁

相關文章

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.