IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)Oracle → Oracle中表的四種連接方式講解

Oracle中表的四種連接方式講解

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(1)

  表的連接是指在一個(gè)SQL語(yǔ)句中通過(guò)表與表之間的關(guān)連,從一個(gè)或多個(gè)表中檢索相關(guān)的數(shù)據(jù),大體上表與表之間的連接主要可分四種,分別為相等連接,外連接,不等連接和自連接,本文將主要從以下幾個(gè)典型的例子來(lái)分析Oracle表的四種不同連接方式:

  1. 相等連接

  通過(guò)兩個(gè)表具有相同意義的列,可以建立相等連接條件。

  只有連接列上在兩個(gè)表中都出現(xiàn)且值相等的行才會(huì)出現(xiàn)在查詢結(jié)果中。

  例 查詢員工信息以及對(duì)應(yīng)的員工所在的部門信息;


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

  REM 顯示工資超過(guò)2000的員工信息以及對(duì)應(yīng)的員工的部門名稱。

  2. 外連接

  對(duì)于外連接,Oracle中可以使用"(+)"來(lái)表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面將配合實(shí)例一一介紹。除了顯示匹配相等連接條件的信息之外,還顯示無(wú)法匹配相等連接條件的某個(gè)表的信息。

  外連接采用(+)來(lái)識(shí)別。

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

  代表除了顯示匹配相等連接條件的信息之外,還顯示右條件所在的表中無(wú)法匹配相等連接條件的信息。

  此時(shí)也稱為"右外連接".另一種表示方法是:

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

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

  代表除了顯示匹配相等連接條件的信息之外,還顯示左條件所在的表中無(wú)法匹配相等連接條件的信息。

  此時(shí)也稱為"左外連接".

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

  例 顯示員工信息以及所對(duì)應(yīng)的部門信息

  --無(wú)法顯示沒(méi)有部門的員工信息

  --無(wú)法顯示沒(méi)有員工的部門信息


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

  --直接做相等連接:


  SELECT?*?FROM?EMP?JOIN?DEPT?ON?EMP.DEPTNO?=?DEPT.DEPTNO;

  REM 顯示員工信息以及所對(duì)應(yīng)的部門信息,顯示沒(méi)有員工的部門信息


  --SELECT?*?FROM?EMP,DEPT?WHERE?EMP.DEPTNO(+)?=?DEPT.DEPTNO;
  SELECT?*?FROM?EMP?RIGHT?OUTER?JOIN?DEPT?ON?EMP.DEPTNO?=?DEPT.DEPTNO;

  REM 顯示員工信息以及所對(duì)應(yīng)的部門信息,顯示沒(méi)有部門的員工信息


  --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)行不等連接,比較符號(hào)一般為>,<,...,BETWEEN.. AND..


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

  REM 顯示員工的編號(hào),姓名,工資,以及工資所對(duì)應(yīng)的級(jí)別。


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

  REM 顯示雇員的編號(hào),姓名,工資,工資級(jí)別,所在部門的名稱;


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

  4. 自連接

  自連接是數(shù)據(jù)庫(kù)中經(jīng)常要用的連接方式,使用自連接可以將自身表的一個(gè)鏡像當(dāng)作另一個(gè)表來(lái)對(duì)待,從而能夠得到一些特殊的數(shù)據(jù)。下面介紹一下自連接的方法:

  將原表復(fù)制一份作為另一個(gè)表,兩表做笛卡兒相等連接。

  例 顯示雇員的編號(hào),名稱,以及該雇員的經(jīng)理名稱

  SELECT WORKER.ENAME,WORKER.MGR,MANAGER.EMPNO,MANAGER.ENAME FROM EMP WORKER,EMP MANAGER

  WHERE WORKER.MGR = MANAGER.EMPNO;

關(guān)鍵詞標(biāo)簽:Oracle

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索 為UNIX服務(wù)器設(shè)置Oracle全文檢索

相關(guān)下載

    人氣排行 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法