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

2022-04-01 11:02:27 字數 2338 閱讀 8363

--

內連線即普通等值連線

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 from emp e,dept d where e.deptno = d.deptno and e.sal >

2000;--

外連線驗證之前,先往dept表中插入一些資訊

--表操作基於oracle中scott使用者下emp,dept表。由於deptno是emp的外來鍵,

--所有左外連線查詢不明顯,但外連線、右外連線查詢結果明顯

insert

into

dept (deptno, dname, loc)

values (60, '

研發部', '

beijing');

insert

into

dept (deptno, dname, loc)

values (80, '

培訓部', '

beijing');

insert

into

dept (deptno, dname, loc)

values (70, '

公關部', '

beijing');

commit

;select

e.ename, e.job, e.sal, d.dname

from

emp e, dept d

where e.deptno (+)=

d.deptno; --

左外連線:left outer join 或 left join

select

e.ename,e.job,e.sal,d.dname

from emp e left

outer

join dept d on d.deptno =

e.deptno ;

select

e.ename,e.job,e.sal,d.dname

from emp e left

join dept d on d.deptno =

e.deptno ;

----此為oracle左外連線自帶語法

select

e.ename,e.job,e.sal,d.dname

from

emp e ,dept d

where d.deptno (+)=

e.deptno ; --

右外連線:right outer join 或 right join

select

e.ename,e.job,e.sal,d.dname

from emp e right

outer

join dept d on d.deptno =

e.deptno ;

select

e.ename,e.job,e.sal,d.dname

from emp e right

join dept d on d.deptno =

e.deptno ;

----此為oracle右外連線自帶語法

select

e.ename,e.job,e.sal,d.dname

from

emp e ,dept d

where d.deptno = e.deptno(+

) ;--

外連線:full outer join 或 full join

select

e.ename,e.job,e.sal,d.dname

from emp e full

outer

join dept d on d.deptno =

e.deptno ;

select

e.ename,e.job,e.sal,d.dname

from emp e full

join dept d on d.deptno =

e.deptno ;

/*三個表做左外連線

select *

from testa

left outer join testb

on testa.a=testb.a

left outer join testc

on testa.a=testc.a

*/

左連線 左外連線 右外連線

在之前,我對mssql中的內連線和外連線所得出的資料集不是很清楚。這幾天重新溫習了一下sql的書本,現在的思路應該是很清楚了,現在把自己的理解發出來給大家溫習下。希望和我一樣對sql的連線語句不太理解的朋友能夠有所幫助。發這麼菜的教程,各位大大們別笑話偶了,呵 d 有兩個表a和表b。表a結構如下 a...

自然連線,外連線,左外連線,右外連線

1.自然連線 結果基於表r和s的笛卡爾乘積,取對應的r和s中相同屬性組都相同的值,同時相同屬性組只保留乙個 先來看圖示,2個表以及自然連線的結果 操作的步驟 1.1找出2個表中相同的屬性組 屬性a加上屬性b 1.2找相同屬性組中,相同的屬性值所對應的元組 相同的屬性值 1.2.相同屬性值對應的元組 ...

左外連線 右外連線 全連線

例子 create table t1 c1 int primary key,c2 int create table t2 cc1 int primary key,cc2 int insert into t1 values 1,1 2,2 5,5 insert into t2 values 2,2 3...