Oracle資料庫 多表連線

2021-07-26 09:57:46 字數 1087 閱讀 7945

什麼是多表查詢?

從多個表中獲取資料

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 自連線

資料庫多表連線

我今天學習了資料庫的多表連j 接,分別有內連線和左外連線還有右外連線,這三個連線是最基本的連線。1.內連線分為是三種 等值連線 是指表之間通過 等於 關係連線起來,產生乙個臨時表,然後對該臨時表進行處理後生成最終結果。其查詢結果中列出被連線表中的所有。2 不等值連線 是指表之間的連線關係不是 等於 ...

資料庫MySQL 多表連線

做一下資料庫的筆記 一下是資料庫中的兩張表,以這兩張表為例,學習多表連線的相關知識 1.笛卡爾交集 交叉連線 select from emp cross join dept 將兩個表進行以上的連線,結果如下 這種連線的效果很明顯,就是兩個表裡的每一條資料都進行了一次連線 2.內連線 必須加限定條件 ...

資料庫多表連線查詢

一 多表查詢 多表查詢,又稱表聯合查詢,即一條sql語句涉及到的表有多張,資料通過特定的連線進行聯合顯示。1 笛卡爾積 在數學中,兩個集合x和y的笛卡尓積 cartesian product 又稱直積,表示為x y.假設集合a 集合b 則兩個集合的笛卡爾積為。在資料庫中,如果直接查詢倆張表,那麼其查...