Oracle數據庫中表的四種連接方式

    時間:2024-07-17 08:46:23 Oracle認證 我要投稿
    • 相關推薦

    Oracle數據庫中表的四種連接方式

      Oracle表的連接是指在一個SQL語句中通過表與表之間的關連,從一個或多個表中檢索相關的數據,大體上表與表之間的連接主要可分四種,分別為相等連接,外連接,不等連接和自連接,下文yjbys小編將從幾個典型的例子來分析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 連接條件

      例 顯示員工信息以及所對應的部門信息

      --無法顯示沒有部門的員工信息

      --無法顯示沒有員工的部門信息

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

      --直接做相等連接:

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

      REM 顯示員工信息以及所對應的部門信息,顯示沒有員工的部門信息

      --SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO(+) = DEPT.DEPTNO;

      SELECT * FROM EMP RIGHT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;

      REM 顯示員工信息以及所對應的部門信息,顯示沒有部門的員工信息

      --SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO(+);

      SELECT * FROM EMP LEFT OUTER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;

      3. 不等連接

      兩個表中的相關的兩列進行不等連接,比較符號一般為>,<,...,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 顯示雇員的編號,姓名,工資,工資級別,所在部門的名稱;

      SELECT EMPNO,ENAME,SAL,GRADE,DNAME FROM EMP,DEPT,SALGRADE

      WHERE EMP.DEPTNO = DEPT.DEPTNO AND EMP.SAL BETWEEN LOSAL AND HISAL;

      4. 自連接

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

      將原表復制一份作為另一個表,兩表做笛卡兒相等連接。

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

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

      WHERE WORKER.MGR = MANAGER.EMPNO;

    【Oracle數據庫中表的四種連接方式】相關文章:

    Oracle認證:Oracle避免全表掃描方式03-08

    Oracle數據庫SELECT語句03-27

    oracle數據庫基本語句02-08

    Oracle數據庫語句大全12-21

    Oracle數據庫認證層次03-09

    Oracle數據庫基本知識03-31

    ORACLE數據庫操作基本語句03-06

    oracle數據庫培訓課程大綱03-21

    oracle數據庫基礎知識01-21

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      亚洲小电影91 | 伊人色综合久久天天人手人婷 | 亚洲А∨天堂AV网在线 | 日韩国产精品免费人成视频 | 中文乱码字幕无线在线 | 亚洲国产综合专区在线播放 |