조인은 관계형 데이터베이스에서 여러 테이블을 연결하여 관련된 데이터를 하나의 결과 집합으로 결합하는 SQL 연산이다. 두 개 이상의 테이블에서 공통된 열(column)을 기준으로 데이터를 결합하여 하나의 결과로 조회할 수 있게한다.
ㅇ 조인의 목적
- 여러 테이블에 나뉘어 저장된 데이터를 효율적으로 조회
- RDBMS의 정규화된 테이블 간의 관계를 활용하여 데이터를 조합
ㅇ 조인의 유형
- INNER JOIN
- LEFT JOIN
- RIGHT JOIN
- FULL OUTER JOIN
- CROSS JOIN
- SELF JOIN
INNER JOIN
- 교집합 개념에 해당하는 조인이다.
- 두 테이블에서 공통된 열의 값이 일치하는 행만 결합하여 결과로 반환한다.
- 일치하지 않는 데이터는 결과에서 제외된다.
SELECT A.column1, B.column2
FROM A
INNER JOIN B
ON A.common_column = B.common_column;
LEFT JOIN
- 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블의 일치하는 값이 있으면 그 값을 반환한다.
- 일치하는 값이 없다면 NULL로 표시된다.
SELECT A.column1, B.column2
FROM A
LEFT JOIN B
ON A.common_column = B.common_column;
RIGHT JOIN
- 오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블의 일치하는 값이 있으면 그 값을 반환한다.
- 왼쪽 테이블에 일치하는 값이 없으면 NULL로 표시된다.
SELECT A.column1, B.column2
FROM A
RIGHT JOIN B
ON A.common_column = B.common_column;
FULL OUTER JOIN
- 두 테이블에서 모든 행을 반환한다. 일치하는 데이터는 결합하고, 일치하지 않는 값은 NULL로 채운다.
- 왼쪽과 오른쪽의 일치하는 데이터만 결합되고, 모든 데이터를 표시한다.
SELECT A.column1, B.column2
FROM A
FULL OUTER JOIN B
ON A.common_column = B.common_column;
CROSS JOIN
- 모든 경우의 수를 전부 표현한다.
- A 테이블이 3개, B 테이블이 4개라면 3 * 4 = 12개의 데이터가 조회된다.
- 테스트용 대용량 테이블을 생성할 때 생성된다.
SELECT A.column1, B.column2
FROM A
CROSS JOIN B;
SELF JOIN
- 자기 자신을 대상으로 수행하는 조인이다.
- 동일한 테이블 내에서 관련된 데이터를 결합할 때 사용한다.
- 두 테이블을 비교하는 것 처럼 테이블에 별칭을 부여하여 조인한다.
SELECT A.column1, B.column2
FROM Table A, Table B
WHERE A.common_column = B.common_column;
참고: https://gyoogle.dev/blog/computer-science/data-base/Join.html
'DB' 카테고리의 다른 글
DB Normalization(정규화) (0) | 2024.10.10 |
---|---|
DB 이상현상(Anomaly) (2) | 2024.10.10 |
DB Key (0) | 2024.10.04 |
DB SQL Injection (0) | 2024.10.04 |
DB Index (0) | 2024.10.04 |