數據庫中表的連接方式詳解

數據庫中表的連接方式詳解


create table a (id number(3),name varchAR2(20));
create table b (id number(3),name varchar2(50));
insert  into a values(1,'小一');
insert  into a values(2,'小二');
insert  into a values(3,'小三');

insert into b values(1,'小小');
insert into b values(2,'小中');
insert into b values(4,'小大');
insert into b values(5,'大大');

--連接分爲兩類:1、內連接  2、外連接(左外連接、右外連接、全外連接(只要有數據,不匹配的表字段補null))3、笛卡爾集(交叉連接)
--以下第一條爲數據庫中通用寫法,第二條爲Oracle數據庫特有:

--內連接:(對於不匹配的都會進行捨棄)
select * from a inner join b on a.id=b.id;
select * from a,b where a.id = b.id;

--外連接:(對於不匹配的字段補null)
--左外連接:(以左表爲基表(驅動表),將左表的每一條數據都與右表匹配,如果在右表中沒有匹配數據,則右表補null)
select * from a left join b on a.id=b.id;
select * from a,b where a.id=b.id(+);
--右外連接:(以右表爲基表(驅動表),將右表的每一條數據都與左表匹配,如果在左表中沒有匹配數據,則左表補null)
select * from a right join b on a.id = b.id;
select * from a,b where a.id(+) = b.id;
--全外連接:左表和右表沒有符合條件的都補null值
select * from a full join b on a.id = b.id;
select * from a,b where a.id(+)=b.id union select * from a,b where a.id = b.id(+);
--交叉連接:(全連接,笛卡爾集,全排列)
select * from a cross join b;

select * from a,b;

發佈了3 篇原創文章 · 獲贊 59 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章