Oracle資料庫中表的四種串連方式

來源:互聯網
上載者:User

表的串連是指在一個SQL語句中通過表與表之間的關連,從一個或多個表中檢索相關的資料,大體上表與表之間的串連主要可分四種,分別為相等串連,外串連,不等串連和自串連,本文將主要從以下幾個典型的例子來分析Oracle表的四種不同串連方式:

1. 相等串連

通過兩個表具有相同意義的列,可以建立相等串連條件。只有串連列上在兩個表中都出現且值相等的行才會出現在查詢結果中。

例 查詢員工資訊以及對應的員工所在的部門資訊:

 SELECT * FROM EMP,DEPT;  SELECT * FROM EMP,DEPT  WHERE EMP.DEPTNO = DEPT.DEPTNO;

REM 顯示工資超過2000的員工資訊以及對應的員工的部門名稱。

2. 外串連

對於外串連,Oracle中可以使用“(+)”來表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面將配合執行個體一一介紹。除了顯示匹配相等串連條件的資訊之外,還顯示無法匹配相等串連條件的某個表的資訊。

外串連採用(+)來識別。

A) 左條件(+) = 右條件;

代表除了顯示匹配相等串連條件的資訊之外,還顯示右條件所在的表中無法匹配相等串連條件的資訊。此時也稱為"右外串連".另一種表示方法是:

SELECT ... FROM 表1 RIGHT OUTER JOIN 表2 ON 串連條件

B) 左條件 = 右條件(+);

代表除了顯示匹配相等串連條件的資訊之外,還顯示左條件所在的表中無法匹配相等串連條件的資訊。此時也稱為"左外串連".

SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 串連條件

例 顯示員工資訊以及所對應的部門資訊

--無法顯示沒有部門的員工資訊

--無法顯示沒有員工的部門資訊

3. 不等串連

兩個表中的相關的兩列進行不等串連,比較符號一般為>,<,...,BETWEEN.. AND..

REM SALGRADE--DESC SALGRADE;--SELECT * FROM SALGRADE;

REM 顯示員工的編號,姓名,工資,以及工資所對應的層級。

SELECT EMPNO,ENAME,SAL,SALGRADE.* FROM SALGRADE,EMPWHERE EMP.SAL BETWEEN LOSAL AND HISAL;

REM 顯示僱員的編號,姓名,工資,工資層級,所在部門的名稱;

SELECT EMPNO,ENAME,SAL,GRADE,DNAME FROM EMP,DEPT,SALGRADEWHERE EMP.DEPTNO = DEPT.DEPTNO AND EMP.SAL BETWEEN LOSAL AND HISAL;

4. 自串連

自串連是資料庫中經常要用的串連方式,使用自串連可以將自身表的一個鏡像當作另一個表來對待,從而能夠得到一些特殊的資料。下面介紹一下自串連的方法:

將原表複製一份作為另一個表,兩表做笛卡兒相等串連。

例 顯示僱員的編號,名稱,以及該僱員的經理名稱

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.