- 相關(guān)推薦
Oracle數據庫中表的四種連接方式
Oracle表的連接是指在一個(gè)SQL語(yǔ)句中通過(guò)表與表之間的關(guān)連,從一個(gè)或多個(gè)表中檢索相關(guān)的數據,大體上表與表之間的連接主要可分四種,分別為相等連接,外連接,不等連接和自連接,下文yjbys小編將從幾個(gè)典型的例子來(lái)分析Oracle表的四種不同連接方式,一起來(lái)學(xué)習吧!
1. 相等連接
通過(guò)兩個(gè)表具有相同意義的列,可以建立相等連接條件。只有連接列上在兩個(gè)表中都出現且值相等的行才會(huì )出現在查詢(xún)結果中。
例 查詢(xún)員工信息以及對應的員工所在的部門(mén)信息:
SELECT * FROM EMP,DEPT;
SELECT * FROM EMP,DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO;
REM 顯示工資超過(guò)2000的員工信息以及對應的員工的部門(mén)名稱(chēng)。
2. 外連接
對于外連接,Oracle中可以使用“(+)”來(lái)表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面將配合實(shí)例一一介紹。除了顯示匹配相等連接條件的信息之外,還顯示無(wú)法匹配相等連接條件的某個(gè)表的信息。
外連接采用(+)來(lái)識別。
A) 左條件(+) = 右條件;
代表除了顯示匹配相等連接條件的信息之外,還顯示右條件所在的表中無(wú)法匹配相等連接條件的信息。此時(shí)也稱(chēng)為"右外連接".另一種表示方法是:
SELECT ... FROM 表1 RIGHT OUTER JOIN 表2 ON 連接條件
B) 左條件 = 右條件(+);
代表除了顯示匹配相等連接條件的信息之外,還顯示左條件所在的表中無(wú)法匹配相等連接條件的信息。此時(shí)也稱(chēng)為"左外連接".
SELECT ... FROM 表1 LEFT OUTER JOIN 表2 ON 連接條件
例 顯示員工信息以及所對應的部門(mén)信息
--無(wú)法顯示沒(méi)有部門(mén)的員工信息
--無(wú)法顯示沒(méi)有員工的部門(mén)信息
--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;
--直接做相等連接:
SELECT * FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;
REM 顯示員工信息以及所對應的部門(mén)信息,顯示沒(méi)有員工的部門(mén)信息
--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO(+) = DEPT.DEPTNO;
SELECT * FROM EMP RIGHT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;
REM 顯示員工信息以及所對應的部門(mén)信息,顯示沒(méi)有部門(mén)的員工信息
--SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO(+);
SELECT * FROM EMP LEFT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;
3. 不等連接
兩個(gè)表中的相關(guān)的兩列進(jìn)行不等連接,比較符號一般為>,<,...,BETWEEN.. AND..
REM SALGRADE
--DESC SALGRADE;
--SELECT * FROM SALGRADE;
REM 顯示員工的編號,姓名,工資,以及工資所對應的級別。
SELECT EMPNO,ENAME,SAL,SALGRADE.* FROM SALGRADE,EMP
WHERE EMP.SAL BETWEEN LOSAL AND HISAL;
REM 顯示雇員的編號,姓名,工資,工資級別,所在部門(mén)的名稱(chēng);
SELECT EMPNO,ENAME,SAL,GRADE,DNAME FROM EMP,DEPT,SALGRADE
WHERE EMP.DEPTNO = DEPT.DEPTNO AND EMP.SAL BETWEEN LOSAL AND HISAL;
4. 自連接
自連接是數據庫中經(jīng)常要用的連接方式,使用自連接可以將自身表的一個(gè)鏡像當作另一個(gè)表來(lái)對待,從而能夠得到一些特殊的數據。下面介紹一下自連接的方法:
將原表復制一份作為另一個(gè)表,兩表做笛卡兒相等連接。
例 顯示雇員的編號,名稱(chēng),以及該雇員的經(jīng)理名稱(chēng)
SELECT WORKER.ENAME,WORKER.MGR,MANAGER.EMPNO,MANAGER.ENAME FROM EMP WORKER,EMP MANAGER
WHERE WORKER.MGR = MANAGER.EMPNO;
【Oracle數據庫中表的四種連接方式】相關(guān)文章:
oracle數據庫基本語(yǔ)句02-08
Oracle數據庫語(yǔ)句大全12-21
Oracle數據庫認證層次03-09
Oracle數據庫基本知識03-31
ORACLE數據庫操作基本語(yǔ)句03-06
oracle數據庫培訓課程大綱03-21
oracle數據庫基礎知識01-21