본문 바로가기
DB

DB Join(조인)

by 차가운개발 2024. 10. 10.

 

조인은 관계형 데이터베이스에서 여러 테이블을 연결하여 관련된 데이터를 하나의 결과 집합으로 결합하는 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