1. 程式人生 > 其它 >1.5 學習Oracle-多表查詢

1.5 學習Oracle-多表查詢

Oracle資料庫學習教程

多表查詢

仔細看上面的圖片
多表操作,首先會生成笛卡爾全集表.多表查詢就是按照給定條件(連線條件),從笛卡爾全集中選出正確的結果
根據連線條件的不同可以劃分為:等值連結、不等值連結、外連結、自連線

1.等值連線

emp表: 記錄了員工姓名,部門ID等,沒有部門名

dept表: 記錄了部門ID,部門名等

多表: 現在需要,員工名和部門名,很明顯需要兩張表的資訊

所以需要新增where選出真正需要的資料

如果有N張表,至少需要N-1個條件.

2.不等值連線

工資級別表

下面是不等值連線(使用between..and更合適)

3.外連線

統計各部門人數:

也就是包含一些不符合where條件的資料

左外連結:當 where e.deptno=d.deptno 不成立的時候,=左邊所表示的資訊,仍然被包含。

  • 寫法:與叫法相反:where e.deptno=d.deptno(+)

右外連結:當 where e.deptno=d.deptno 不成立的時候,=右邊所表示的資訊,仍然被包含。

  • 寫法:依然與叫法相反:where e.deptno(+)=d.deptno

4.自連線

核心,通過表的別名,將同一張表視為多張表。
select e.ename || ' 的老闆是 ' || nvl(b.ename, '他自己' )from emp e, emp b where e.mgr=b.empno(+)


本文來自部落格園,作者:Ovins,轉載請註明原文連結:https://www.cnblogs.com/ovins/p/15371510.html

喜歡請點關注❤️ ❤️ ❤️