內連線vs外連線

2021-08-13 04:11:17 字數 1743 閱讀 9052

內連線:合併具有同一列的兩個以上的表的行,結果集中不包含乙個表與另乙個表不匹配的行。

外連線:

兩個表在連線的時候除了返回滿足連線條件的行以外,

還返回左(右)表中不滿足連線條件的行,稱為左(右)外連線

。沒有匹配的行是,相應的結果顯示為空(null);

外連線的where條件語句類似於內連線條件語句,

但是連線條件中沒有匹配行的表要在其後面加(+)

select e.employee_id,d.department_id
from employees e , departments d
where e.department_id = d.department_id(+);
在employees表中可能存在員工在 departments中沒有部門,所以在departments表中存在沒有匹配行, d.department_id(+) 

左外連線departments中沒有部門,所以在departments表中存在沒有匹配行, d.department_id(+)

左外連線

同存在相反的情況即為右外連線

e.department_id(+)e.department_id(+)

sql99實現內連線,左外連線,右外連線,滿外連線。

內連線:

select e.employee_id,d.department_id

from employees e join departments d

on e.department_id = d.department_id;join departments d

on e.department_id = d.department_id;

左外連線:

select e.employee_id,d.department_id

from employees e left outer join departments d

on e.department_id = d.department_id;left outer join departments d

on e.department_id = d.department_id;

右外連線

select e.employee_id,d.department_id

from employees e right outer join departments d

on e.department_id = d.department_id;right outer join departments d

on e.department_id = d.department_id;

滿外連線:(可以實現連線雙方的不滿足連線條件的行全部顯示出來)

select e.employee_id,d.department_id

from employees e full outer join departments d

on e.department_id = d.department_id;full outer join departments d

on e.department_id = d.department_id;

內連線外連線

內連線 內連線也叫連線,是最早的一種連線,最早被稱為普通連線或自然連線。內連線是從結果中刪除其他被連線表中沒有匹配行的所有行,所以內連線可能會丟失資訊。內連線的語法 select fieldlist from table1 inner join table2 on table1.column tab...

SQL 內連線,外連線(左外連線 右外連線)

參考整理筆記 關鍵字 inner join on 語句 select from a table a inner join b table bon a.a id b.b id 執行結果 說明 組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集 陰影 部分。關鍵字 left join o...

Oracle外連線,左外連線,右外連線,內連線簡析

內連線即普通等值連線 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 select e.ename e.job,e.sal d.dname fr...