Oracle數據庫中表的四種連接方式
Oracle表的連接是指在一個SQL語句中通過表與表之間的關連,從一個或多個表中檢索相關的數據,大體上表與表之間的連接主要可分四種,分別爲相等連接,外連接,不等連接和自連接,下文yjbys小編將從幾個典型的例子來分析Oracle表的四種不同連接方式,一起來學習吧!
1. 相等連接
通過兩個表具有相同意義的列,可以建立相等連接條件。只有連接列上在兩個表中都出現且值相等的行纔會出現在查詢結果中。
例 查詢員工信息以及對應的員工所在的部門信息:
SELECT * FROM EMP,DEPT;
SELECT * FROM EMP,DEPT
WHERE NO = NO;
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 NO = NO;
--直接做相等連接:
SELECT * FROM EMP JOIN DEPT ON NO = NO;
REM 顯示員工信息以及所對應的部門信息,顯示沒有員工的部門信息
--SELECT * FROM EMP,DEPT WHERE NO(+) = NO;
SELECT * FROM EMP RIGHT OUTER JOIN DEPT ON NO = NO;
REM 顯示員工信息以及所對應的部門信息,顯示沒有部門的員工信息
--SELECT * FROM EMP,DEPT WHERE NO = NO(+);
SELECT * FROM EMP LEFT OUTER JOIN DEPT ON NO = NO;
3. 不等連接
兩個表中的相關的兩列進行不等連接,比較符號一般爲>,<,...,BETWEEN.. AND..
REM SALGRADE
--DESC SALGRADE;
--SELECT * FROM SALGRADE;
REM 顯示員工的編號,姓名,工資,以及工資所對應的級別。
SELECT EMPNO,ENAME,SAL,SALGRADE.* FROM SALGRADE,EMP
WHERE BETWEEN LOSAL AND HISAL;
REM 顯示僱員的編號,姓名,工資,工資級別,所在部門的名稱;
SELECT EMPNO,ENAME,SAL,GRADE,DNAME FROM EMP,DEPT,SALGRADE
WHERE NO = NO AND BETWEEN LOSAL AND HISAL;
4. 自連接
自連接是數據庫中經常要用的連接方式,使用自連接可以將自身表的一個鏡像當作另一個表來對待,從而能夠得到一些特殊的數據。下面介紹一下自連接的方法:
將原表複製一份作爲另一個表,兩表做笛卡兒相等連接。
例 顯示僱員的編號,名稱,以及該僱員的經理名稱
SELECT E,,O,E FROM EMP WORKER,EMP MANAGER
WHERE = O;
相關文章
-
如何操作Oracle數據庫中的(+)連接
本文主要向你介紹的是Oracle數據庫中的(+)連接的`實際操作,本文是以相關使用代碼的描述來引出其實際的操作,你如果是Oracle數據庫中的(+)連接的瘋狂一族的話,就一起來看看吧! 1. 從表A.A1 (+) = 主表B.B1複製代碼SELE -
如何通過Oracle連接管理器控制數據庫連接
爲了更好的控制Oracle數據庫的連接,Oracle提出了一個連接管理器的解決方案。連接管理器是Oracle開發的一箇中間件解決方案,它提供了許多可縮放性的特性。Oralce連接管理器又是一個多用途的聯網解決方案,可用於提升可伸縮 -
Oracle數據庫無響應故障處理方式
Oracle數據庫無響應故障,簡單地講就是數據庫實例不能響應客戶端發起的請求,客戶端提交一個SQL後,就一直處於等待數據庫實例返回結果的狀態。更嚴重的現象是客戶端根本不能連接到數據庫,發起一個連接請求後,一直處於等待狀 -
Oracle數據庫與FoxPro數據的轉換
我們大家都知道Oracle數據庫的數據格式和微機通用的實際應用格式有所不同,所以在實際操作中我們不能對Oracle的數據直接調用,Oracle數據庫所提供的相關前臺的開發工具Developer 2000雖然可以訪問Oracle的數據。並有數據 -
Oracle數據庫插入日期型數據的方法
racle數據庫插入日期型數據,應該怎麼下手呢?下面小編爲大家整理了關於Oracle數據庫插入日期型數據的方法,希望能爲你提供幫助:往Oracle數據庫中插入日期型數據(to_date的用法)INSERT INTO FLOOR VALUES ( to_date ( ' -
外部表在Oracle數據庫中使用的限制
外部表是指不在數據庫中的表,如操作系統上的一個按一定格式分割的文本文件或者其他類型的表。這個外部表對於Oracle數據庫來說,就好像是一張視圖,在數據庫中可以像試圖一樣進行查詢等操作。這個試圖允許用戶在外部數據上 -
oracle表空間啓動數據庫命令
爲了方便大家學習,下面yjbys小編爲大家準備了關於oracle表空間啓動數據庫命令的方法,歡迎閱讀。啓動數據庫命令分爲三個階段:startup nomountalter database mountalter database open本用戶讀取其他用戶對象的權限:selec -
Oracle數據庫臨時表管理技巧
我們在創建數據表的時候,若沒有特殊的指明,那麼我們創建的表是一個永久的關係型表格,也就是說,這個表格中對應的數據,除非是我們顯示的刪除的話,表中的數據是永遠都存在的。相對應的,在Oracle數據庫中還有一種類型的表,叫做臨 -
Oracle數據庫SELECT語句
學習oracle數據庫自然會用到查詢(SELECT)語句,下面yjbys小編爲大家列舉各種查詢語句,希望能幫助到各位!普通用戶連接conn scott/tiger超級管理員連接 conn sys/sys as sysdbaDisconnect 斷開連接把SQL存到文件 save c: -
Oracle數據庫基礎知識:SELECT語句
SELECT語句是指用來查詢、添加、 和刪除數據庫中數據的語句, 和刪除數據庫中數據的語句 , 它們 是 SELECT 、 INSERT 、 UPDATE 、 DELETE等. 下面是Oracle數據庫基礎知識——SELECT語句,希望對大家有所幫助