Oracle內連接、外連接小總結

 

在oracle 10g上做的實驗;
在oracle數據庫中兩張表,做了備份,empbak和deptbak,
Empbak
 

Depybak
 

一、內連接:
1、內連接,即最常見的等值連接,例:
select * from empbak e,deptbak d where e.deptno=d.deptno;
 

二、外連接
外連接分爲左外連接,右外連接和全外連接。
1、左外連接 left outer join 或者 left join
左外連接就是在等值連接的基礎上加上主表中的未匹配數據,例:
select * from empbak e left join deptbak d on e.deptno=d.deptno;
或者:
select * from empbak e , deptbak d where e.deptno=d.deptno(+);
 

即:在empbak也顯示比匹配的內容,由於empbak數據在deptbak都有對應,所以和內連接顯示內容一致。
2、右外連接 right outer join 或者 right join
右外連接是在等值連接的基礎上加上被連接表的不匹配數據,例:
select * from empbak e right join deptbak d on e.deptno=d.deptno;
或者:
select * from empbak e , deptbak d where e.deptno(+)=d.deptno;
 

3、全外連接 full outer join 或者 full join
全外連接是在等值連接的基礎上將左表和右表的未匹配數據都加上,例:
select * from empbak e full join deptbak d on e.deptno=d.deptno;
或者:(全外連接的等價寫法,對同一表先做左連接,然後右連接)
select * from empbak e , deptbak d where e.deptno=d.deptno(+) unino
select * from empbak e , deptbak d where e.deptno(+)=d.deptno;
 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章