Oracle 內連線,左連線 右連線 全連線

2021-05-04 10:22:53 字數 1952 閱讀 5986

此處用到兩張表  員工表和部門表

一般的相等連線:

select * from a, b where a.id = b.id;

這個就屬於內連線。 

內連線

1)等值連線

sql> select

emp.empno

, emp.ename

, emp.deptno,2

dept.deptno

, dept.loc

3from

emp, dept

4where

emp.deptno

=dept.deptno

;empno ename deptno

deptno

loc----- ------ ------ ------ ---------

7839 king

1010 new york

7698 blake

3030 chicago

7782 clark

1010 new york

7566 jones

2020 dallas

...14 rows selected.

2)非等值連線

外連線:

oracle中可以使用「(+) 」來表示,9i可以使用left/right/full outer join  

left outer join:左外關聯    (左外連線就是在等值連線的基礎上加上主表中的未匹配資料)

select e.last_name, e.department_id, d.department_name  

from employees e  

left outer join departments d  

on (e.department_id = d.department_id);  

等價於  

select e.last_name, e.department_id, d.department_name  

from employees e, departments d  

where e.department_id=d.department_id(+)  

結果為:所有員工及對應部門的記錄,包括沒有對應部門編號department_id的員工記錄。  

right outer join:右外關聯    (右外連線是在等值連線的基礎上加上被連線表的不匹配資料)

select e.last_name, e.department_id, d.department_name  

from employees e  

right outer join departments d  

on (e.department_id = d.department_id);  

等價於  

select e.last_name, e.department_id, d.department_name  

from employees e, departments d  

where e.department_id(+)=d.department_id  

結果為:所有員工及對應部門的記錄,包括沒有任何員工的部門記錄。  

full outer join:全外關聯  

select e.last_name, e.department_id, d.department_name  

from employees e  

full outer join departments d  

on (e.department_id = d.department_id);  

結果為:所有員工及對應部門的記錄,包括沒有對應部門編號department_id的員工記錄和沒有任何員工的部門記錄。

Oracle 內連線,左連線 右連線 全連線

此處用到兩張表 員工表和部門表 一般的相等連線 select from a,b where a.id b.id 這個就屬於內連線。內連線1 等值連線 sql select emp.empno,emp.ename,emp.deptno,2 dept.deptno,dept.loc 3 from emp...

內連線 左連線 右連線

弄個例題,直觀一點。兩個表 表stu id name 1,jack 2,tom 3,kity 4,nono 表exam id grade 1,56 2,76 11,89 內連線 顯示兩表id匹配的 select stu.id,exam.id,stu.name,exam.grade from stu ...

內連線 左連線 右連線

1.內連線 利用內連線可獲取兩表的公共部分的記錄,即圖3的記錄集c 語句如下 select from a join b on a.aid b.bnameid 執行結果如下圖4所示 其實select from a,b where a.aid b.bnameid與select from a join b...