Oracle基礎教程:連接查詢
最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!
我要咨詢Oracle基礎教程:連接查詢,在SQL Server中已經學習過內聯接(inner join)、外聯接(outer join),外聯接又分為左外聯接(left outer join)和右外聯接(right outer join)。Oracle中對兩個表或者若干表之間的外聯接用(+)表示。
案例7:請查詢出工資大于2000元的,員工姓名,部門,工作,工資。
由于部門名稱在dept中,其他的信息在emp表中,需要內聯接才能完成。
代碼演示:內聯接
SQL> SELECT
e.ENAME,e.JOB,e.SAL,d.DNAME
2 FROM emp e,dept d
3 WHERE e.deptno=d.deptno
4 AND e.SAL>2000;
6 rows selected |
也可以使用SQL/92標準中的內聯接:
代碼演示:內聯接
SELECT e.ENAME,e.JOB,e.SAL,d.DNAME FROM EMP e INNER JOIN DEPT d ON e.DEPTNO=d.DEPTNO WHERE e.SAL>2000 |
這里INNER JOIN中,關鍵字INNER可以省略。
案例8:請查詢出每個部門下的員工姓名,工資。
案例分析:
Emp表用外鍵deptno引用Dept表中的deptno,在Dept表中如果有某些部門沒有員工,那么用內聯接,沒有員工的部門將無法顯示,因此必須以Dept表為基準的外聯接。
代碼演示:外聯接
SQL> SELECT
e.ENAME,e.JOB,e.SAL,d.DNAME
2 FROM EMP e ,DEPT d
3 WHERE e.DEPTNO(+)=d.DEPTNO ①
4 /
18 rows selected |
代碼解析:
① (+):Oracle專用的聯接符,在條件中出現在左邊指右外聯接,出現在右邊指左外聯接。
也可以使用SQL/92標準的寫法:
代碼演示:外聯接
SELECT e.ENAME,e.JOB,e.SAL,d.DNAME FROM EMP e RIGHT OUTER JOIN
DEPT d ON e.DEPTNO=d.DEPTNO |
這里RIGHT OUTER JOIN中,關鍵字OUTER可以省略。
提示:雖然Oracle自身的聯接查詢語法比較好寫,同時容易理解,但是為了程序便于移植,推薦使用SQL/92表中的聯接查詢。同時也可以與SQL Server獲得一致。
- 陳衛(wèi)星-老師CUUG金牌講師
- 陳老師 CUUG金牌講師 精通Oracle管理、備份恢復、性能優(yōu)化 11年Ora...[詳細了解老師]
