1. 程式人生 > >Oracle的三種連線使用場景

Oracle的三種連線使用場景

一、內連線Inner Join。

某些情況內連線和直接多表查詢等效 select * from D inner join E on D.f=E.a 等效 select * from D,E where D.f=E.a

內連線查詢只能夠查詢出符合條件的記錄,但是不符合條件的記錄時無法查詢出來的 。

    select * from dept inner join employee on dept.deptid=employee.deptid

    select * from dept,emp where  dept.dtid=emp.dtid

二、外連線Outer Join。

外連線具體分為右外連線right outer join和左外連線left outer join。

例如:有2個表,一個職工表和部門表,一個部門下可以有同時多個職工,但是一個職工只能屬於一個部門,所以部門和職工是一對多的關係

  1. 如果要進行職工表和部門表的關聯查詢,要求查詢出所有的部門資訊,左連線就能夠查詢出結果。左連線其實就是以left join前面的表為主表,即使有些記錄關聯不上,後面的表對應資料為空,但是主表的資訊還是能夠查詢出來的。
select * from dept left outer join emp on dept.dtid=emp.dtid

2.如果要進行職工表和部門表的關聯查詢,要求查詢所有的職工資訊,右連線就能夠查詢出結果。右連線就是以right join後面的表為主表,即使有些記錄關聯不上,前面的表對應資料為空,但是主表的資訊能夠查詢出來

select * from dept right outer join emp  on dept.dtid=emp.dtid

總結一下,外連線就是在不能完全關聯情況下,把需要的部分資訊查詢出來。

三、全連線Full Join

全連線是左外連線和右外連線查詢結果的並集

select * from dept full join emp on dept.detid=emp.dtid

oracle三種連線的具體概念可以參考我的另外一篇《oracle 內連線、外連線、全連線