728x90
반응형
JOIN은 데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현해 줍니다. 이러한 JOIN은 보통 SELECT 문과 함께 자주 사용되며,
INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN 등이 있습니다.
두개의 테이블을 연관지어서 데이터를 가져와야 하는 경우에 각 테이블에 연관되는 값을 넣어서 테이블끼리 연관을 지어 데이터를 가져오는 방법입니다.
두개의 테이블에서 데이터를 동시에 가져오는 방법이므로
일단 두개의 테이블이 필요합니다.
Create table Atable(
aidx number not null,
name varchar2(10) not null,
email varchar2(20) not null
);
Create table Btable(
bidx number not null,
addr varchar(20) null,
phone varchar(15) null,
age number not null
);
두개의 테이블을 생성한 후, 데이터를 넣어줬습니다.
여기서 Atable의 AIDX와 Btable BIDX는 각 행의 고유한 번호로 두 테이블을 연결해주는 컬럼이 될 것입니다.
INNER JOIN
select * from 테이블명1 Inner join 테이블명2 on 테이블1.컬럼명 = 테이블2.컬럼명;
select * from 테이블명 가상명1, 테이블명 가상명2 where 가상명.컬럼명1 = 가상명.컬럼명2;
select * from Atable Inner join Btable on Atable.aidx = Btable.bidx;
select * from Atable A, Btable B where A.aidx = B.bidx;
Atable의 aidx와 Btable의 bidx의 교집합만 가져오게됩니다.
LEFT JOIN
select * from Atable Left join Btable on Atable.aidx = Btable.bidx;
Atable을 기준으로해서 Btable 연관되는 데이터가 있다면 데이터를 연결하고 없다면 null을 표시합니다.
select * from Atable left join Btable on Atable.aidx = Btable.bidx where Btable.bidx is null;
RIGHT JOIN
select * from Atable right join Btable on Atable.aidx = Btable.bidx;
Btable을 기준으로해서 Btable에 연관되는 데이터가 없다면 null을 표시합니다.
FULL OUTER JOIN
select * from Atable full outer join Btable on Atable.aidx = Btable.bidx;
Atable 과 Btable의 연관을 짖고 데이터가 없는 컬럼은 null을 표시합니다.
728x90
반응형
'Database > OracleSQL' 카테고리의 다른 글
oracle / 시퀀스(Sequence) 생성, 수정, 삭제 방법, 사용하는 방법 (0) | 2021.06.24 |
---|---|
Oracle / 테이블에 컬럼 추가하기 / Alter table (0) | 2021.06.11 |
테이블에 데이터 추가하기 / Insert into (0) | 2021.06.11 |