TIL | SQL Table JOIN

Wook·2021년 12월 17일
0

TIL | Backend

목록 보기
8/19

다양한 JOIN

SQL을 공부하는 건 즐거웠다. 논리적으로 이해가 잘 됬기 때문이다. 하지만 JOIN을 공부하면서는 조금 헷갈리기 시작했다. RIGHT JOIN LEFT JOIN FULL JOIN 등등의 다양한 JOIN에 대해서 정확히 알아야 SQL에 대한 흥미를 더 돋굴수 있을거라 생각해서 이렇게 글을 쓰기로 마음먹었다.


JOIN이란?

쿼리문 하나로 연관성이 있는 두개의 테이블을 결합시킬때는 JOIN 문을 사용하면 됩니다.

이미지 출처: w3schools

JOIN 은 두개의 테이블을 결합할 때 사용 되는데 위의 밴다이어그램에 표현된 것 처럼 집합 개념으로 생각하면 이해하기 어렵지 않습니다.
교집합, 즉 연결성이 있는 부분(칼럼)으로 두 개의 테이블을 결합 할 수 있습니다.

JOIN이란 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법입니다. 자신이 검색하고 싶은 컬럼이 다른 테이블에 있을 경우 주로 사용하며 여러 개의 테이블을 마치 하나의 테이블인 것처럼 활용하는 방법입니다. 보통 Primary key혹은 Foreign key로 두 테이블을 연결합니다. 테이블을 연결하려면 적어도 하나의 칼럼은 서로 공유되고 있어야 합니다.


⚡️ JOIN의 종류


INNER JOIN

간단하게 교집합이라고 생각하시면 됩니다. 기준 테이블과 Join 한 테이블의 중복된 값을 보여줍니다.

결과값은 A의 테이블과 B테이블이 모두 가지고 있는 데이터만 검색됩니다.


LEFT OUTER JOIN

기준테이블의 값 + 테이블과 기준 테이블의 중복된 값을 보여줍니다.

왼쪽 테이블을 기준으로 JOIN을 한다고 보면 이해가 편합니다.

그럼 결과값은 A테이블의 모든 데이터와 A테이블과 B테이블의 중복되는 값이 검색됩니다.


RIGHT OUTER JOIN

LEFT OUTER JOIN의 반대 개념이라고 생각하면 됩니다

오른쪽 테이블을 기준으로 JOIN을 하는 것 외에는 LEFT OUTER JOIN 과 다른 점이 없습니다.

최종 결과값은 B테이블의 모든 데이터와 A테이블과 B테이블의 중복되는 값이 검색됩니다.


FULL OUTER JOIN

합집합을 생각하시면 됩니다. (두 집합이 합쳐진 상태)

A테이블이 가지고 있는 데이터 , B테이블이 가지고 있는 데이터 모두 검색되며, 사실상 기준 테이블의 의미가 없습니다.

profile
지속적으로 성장하고 발전하는 진취적인 태도를 가진 개발자의 삶을 추구합니다.

0개의 댓글