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連線管理器控制資料庫連線
建議:適用於有經驗的編織者。 To fit bust XS S -
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語句,希望對大家有所幫助