본문 바로가기
oracle

오라클6( JOIN 1)

by 킹차니 2021. 3. 19.

JOIN은 두개의 관계가 있는 테이블을 합칠 때 사용한다.

 

1.INNER JOIN : 관계가 있는 테이블만을 합치는 것을 INNER JOIN이라고 한다. 

 

 

MEMBER 테이블과 게시글 테이블인 NOTICE 테이블을 예로 보자.

두 테이블의 관계

한명의 멤버는 여러개의 게시글을 쓸 수 있다. 이렇게 되면 MEMBER 테이블과 NOTICE 테이블은 관계이다.이때 에 해당하는 MEMBER를 부모테이블, 에 해당하는 NOTICE를 자식 테이블이라고 한다.

 

이 둘은 일대 다의 관계가 있으므로 합칠 수 있다. 다음 쿼리문을 수행한다.

SELECT *
FROM MEMBER INNER JOIN NOTICE ON MEMBER.ID = NOTICE.WRITER_ID;

MEMBER 테이블의 아이디와 게시글 테이블의 ID가 같다면 조인해주는 것이다.

결과는 다음과 같다.

INNER JOIN의 결과

결과를 보면 MEMBER 테이블의 kurt와  NOTICE 테이블의 whowho가 쓴 내용은 없어졌다. 왜냐하면 이들은 아우터이기 때문이다.

아우터는 INNER JOIN시에 없어진다.

 

 

 

2. OUTER JOIN

아우터 조인은 INNER JOIN에서 없애버렸던 OUTER들을 NULL값으로 살린다.

 

LEFT OUTER JOIN

SELECT *
FROM MEMBER LEFT OUTER JOIN NOTICE ON MEMBER.ID = NOTICE.WRITER_ID//여기서 left는 MEMBER

RIGHT OUTER JOIN

SELECT *
FROM MEMBER RIGHT OUTER JOIN NOTICE ON MEMBER.ID = NOTICE.WRITER_ID//여기서 right는 NOTICE

 

FULL OUTER JOIN

SELECT *
FROM MEMBER FULL OUTER JOIN NOTICE ON MEMBER.ID = NOTICE.WRITER_ID//full은 MEMBER,NOTICE 둘 다

즉 지정한 테이블의 아우터를 없애지 않고 그대로 살려서 연결하는 것이다.

 

 

 

조인 이해를 위한 이미지:

출처: https://advenoh.tistory.com/23

'oracle' 카테고리의 다른 글

오라클 8 (UNION)  (0) 2021.03.20
오라클7 (JOIN2)  (0) 2021.03.20
오라클4(함수)  (0) 2021.03.19
오라클3 (연산자)  (0) 2021.03.16
오라클2  (0) 2021.03.16