Oracle數據庫 -- 多表連接

什麼是多表查詢?
從多個表中獲取數據

1.1 笛卡爾集
1.2 等值連接

連接的類型有:等值連接、不等值連接、外連接、自連接
等值連接:
示例:查詢員工信息,要求顯示:員工號,姓名,月薪,部門名稱

select e.empno,e.ename,e.sal,d.name from emp e,dept d where e.deptno = d.deptno
1.3 不等值連接

示例:查詢員工信息,要求顯示:員工號,姓名,月薪,部門名稱

select e.empno,e.ename,e.sal,s.grade from emp e ,salgrade s where e.sal between s.losal and s.hisal
1.4 外連接

示例:查詢員工信息,要求顯示:部門號,部門名稱,人數

select d.deptno 部門號,d.dname 部門名稱,count(e.empno) 人數 from emp e,dept d where e.deptno = d.deptno group by d.deptno,d.dname

核心:通過外連接,把對於連接條件不成立的記錄,仍然包含在最後的結果中
左外連接:當連接條件不成立的時候,等號左邊的表仍然被包含
右外連接:當連接條件不成立的時候,等號右邊的表仍然被包含

例如左外連接:

select A.a,B.a from A LEFT JOIN B ON A.b=B.b;

等價於

select A.a,B.a from A,B where A.b = B.b(+);

再舉個例子,這次是右外連接:

select A.a,B.a from A RIGHT JOIN B ON A.b=B.b;

等價於

select A.a,B.a from A,B where A.b (+) = B.b;
1.5 自連接
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章