內連接用于返回滿足連接條件的記錄;而外連接則是內連接的擴展,它不僅會返回滿足連接條件的所有記錄,而且還會返回滿足不滿足連接條件的記錄!從Oracle9i開始,可以在From 子句中指定連接語法。語法如下: SELECT table.column,table.column2 FROM table1 [
內連接用于返回滿足連接條件的記錄;而外連接則是內連接的擴展,它不僅會返回滿足連接條件的所有記錄,而且還會返回滿足不滿足連接條件的記錄!從Oracle9i開始,可以在From 子句中指定連接語法。語法如下:
SELECT table.column,table.column2 FROM table1 [INNER|LEFT|RIGHT|FULL] JOIN table2 ON table.column1=table.column2;
INNER JOIN表示內連接,LEFT JOIN 表示左外連接,RIGHT JOIN表示右外連接,FULL JOIN表示完全外連接;ON 子句用于指定連接條件!
下面我們來看下這些所謂的連接吧!
1.內連接
內連接用于返回滿足連接條件的所有記錄。默認情況下,在執行連接查詢時如果沒有指定任何連接操作符,那么這些連接查詢屬于內連接。 下面以顯示部門10的部門名及其雇員名為例,說明使用內連接的方法。示例如下:
SQL> select a.dname ,b.ename from dept a ,emp b where a.deptno=b.deptno and a.deptno=10; DNAME ENAME -------------- ---------- ACCOUNTING CLARK ACCOUNTING KING ACCOUNTING MILLER
工作中用這種連接查詢很多,其實我一直不知道這就是內連接,在我的印象里面,用INNER JOIN連接語法的才是內連接,想想都可笑?。?/p>
所以在執行連接查詢時,通過在FROM子句中指定INNER JOIN選項,也可以指定內連接,這是一種顯示表示內連接的方式。示例如下:
SQL> select a.dname,b.ename from dept a inner join emp b on a.deptno=b.deptno and a.deptno=10; DNAME ENAME -------------- ---------- ACCOUNTING CLARK ACCOUNTING KING ACCOUNTING MILLER
還有一種方式的內連接,不過我到現在也不怎么用到,這是從Oracle 9i開始執行的,如果主表的主鍵列和從表的外部鍵列名稱相同,那么還可以使用NATURAL JOIN關鍵字自動執行內連接操作,示例如下:
SQL> select dname ,ename from dept natural join emp; DNAME ENAME -------------- ---------- RESEARCH SMITH SALES ALLEN SALES WARD RESEARCH JONES SALES MARTIN SALES BLAKE ACCOUNTING CLARK RESEARCH SCOTT ACCOUNTING KING SALES TURNER RESEARCH ADAMS SALES JAMES RESEARCH FORD ACCOUNTING MILLER 14 rows selected
2.左外連接
左外連接是通過指定 LEFT [OUTER] JOIN選項來實現的.當使用左外連接時,不僅會返回滿足連接條件的所有記錄,而且還會返回不滿足連接條件的連接操作符左邊表的其他行。下面以顯示部門10的部門名、雇員名,以及其他部門名為例:
SQL> select a.dname,b.ename from dept a left join emp b on a.deptno=b.deptno and a.deptno=10; DNAME ENAME -------------- ---------- SALES ACCOUNTING CLARK ACCOUNTING KING ACCOUNTING MILLER RESEARCH SALES OPERATIONS
右外連接、全外連接和左外連接很相似,就不多說了!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com