“,”、“natural join”、“natural left outer join”、“natural right outer join”的用法總結


“,”:代表笛卡爾積;

“natural join”:代表自然連接,即同名列等值連接;

“natural left outer join”:表示左外連接;

“natural right outer join”:表示右外連接。

注意:以下的寫法在Oracle中都是不正確的。

1.r1 join r2

2.r1 inner join r2

3.r1 left outer join r2(如果要用左外連接,需要加natural關鍵字或者后面加on做條件篩選,否則,語法錯誤)

4.r1 right outer join r2(道理同上)

同時,需要注意:natural join 和 natural inner join是一樣的。因為自然連接默認就是內連。

接下來,看代碼示例:

1.建表,插入數據:

drop table relation2;
drop table relation1;

create table relation1(
    id number(10) not null,
    r1_col1 varchar2(50),
    r1_col2 varchar2(50),
    primary key (id)
);

create table relation2(
    id number(10) not null,
    r2_col1 varchar2(50),
    r2_col2 varchar2(50),
    primary key (id)
);

insert into relation1 values(1,'A1','A2');
insert into relation1 values(2,'B1','B2');
insert into relation1 values(3,'C1','C2');
insert into relation1 values(4,'D1','D2');
insert into relation1 values(5,'N1','N2');
insert into relation1 values(6,'M1','M2');
-----------------------------------------------
insert into relation2 values(1,'E1','E2');
insert into relation2 values(2,'F1','F2');
insert into relation2 values(3,'G1','G2');
insert into relation2 values(4,'H1','H2');
insert into relation2 values(7,'X1','X2');
insert into relation2 values(8,'Y1','Y2');

插入的結果:

relation1: 

relation2:

2.查詢

select * from relation1,relation2;--笛卡爾積

總共36條記錄。行號為37是因為第一條記錄從第二行開始。

 

select * from relation1 natural join relation2;--自然連接(默認內連)

 

select * from relation1 natural inner join relation2;--自然連接(顯式內連)

 

select * from relation1 natural left outer join relation2;--自然左外連接

 

select * from relation1 natural right outer join relation2;--自然右外連接

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM