오늘은 DB 조인에 대해 알아보겠습니다.
조인 : 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것
조인을 사용하는 이유는?
정규화와 관련있습니다. 정규화는 이상이 있는 관계를 분해하여 이상현상을 없애는 과정입니다.
이러한 분리되어 저장된 데이터에서 원하는 결과를 다시 도출하기 위해서 하나의 테이블로 합쳐야 합니다. 이때, 조인이 사용됩니다.
조인의 종류
1. INNER JOIN
INNER Join은 왼쪽 테이블 A와 오른쪽 테이블 B의 두 행이 모두 일치하는 행이 있는 부분만 표기합니다. 즉, 두 테이블 간에 교집합을 나타냅니다.
SELECT * FROM TableA A
INNER JOIN TableB B
ON A.key=B.key
INNER Join은 다음과 같이 벤 다이어그램으로 표현될 수 있습니다.
2. LEFT OUTER JOIN
LEFT OUTER JOIN은 왼쪽 테이블 A의 모든 행이 결과 테이블에 표기된다. 만약 테이블 B에서 테이블 A와 일치하는 항목이 없는 경우 해당 값을 null값이 됩니다.
SELECT * FROM TableA A
LEFT JOIN TableB B
ON A.key=B.key
LEFT OUTER JOIN은 다음과 같이 벤 다이어그램으로 표현될 수 있습니다.
3. RIGHT OUTER JOIN
RIGHT OUTER JOIN은 테이블 A에서 일치하는 부분의 레코드와 함께 테이블 B를 기준으로 완전한 레코드 집합을 생성합니다. 만약 테이블 A에서 테이블 B와 일치하는 항목이 없는 경우 해당 값은 null값이 됩니다.
SELECT * FROM TableA A
RIGHT JOIN TableB B
ON A.key=B.key
RIGHT OUTER JOIN은 다음과 같이 벤 다이어그램으로 표현될 수 있습니다.
4. FULL OUTER JOIN
FULL OUTER JOIN은 양쪽 테이블에서 일치하는 레코드와 함께 테이블 A와 테이블 B의 모든 레코드 집합을 생성합니다. 이때 일치하는 항목이 없으면 누락된 쪽에 NULL값이 포함되어 출력됩니다.
SELECT * FROM TableA A
FULL OUTER JOIN TableB B
ON A.key=B.key
FULL OUTER JOIN은 다음과 같이 벤 다이어그램으로 표현될 수 있습니다.
참고할만한 사이트
SQL 조인을 시각화해서 볼 수 있는 사이트입니다.
'CS' 카테고리의 다른 글
[OS] 프로세스 및 스레드 (0) | 2022.12.29 |
---|---|
선형 자료 구조 (0) | 2022.11.03 |
[디자인 패턴] 싱글톤 패턴 (0) | 2022.10.26 |