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가 같다면 조인해주는 것이다.
결과는 다음과 같다.
결과를 보면 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 둘 다
즉 지정한 테이블의 아우터를 없애지 않고 그대로 살려서 연결하는 것이다.
조인 이해를 위한 이미지:
'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 |