[Database] JOIN의 역할과 종류

Hanjmo·2023년 2월 11일
0

JOIN이란?

두 개 이상의 테이블을 서로 연결하여 하나의 테이블로 보기 위해서 사용하는 방법이다.

JOIN의 종류

1. Cartesian Product(카티션 곱)

CROSS JOIN이라고도 불리는 카티션 곱은 JOIN조건을 기술하지 않으면 수행되며,
두 테이블의 row 건수를 서로 곱한 건수만큼의 결과를 출력한다.

카티션 곱이 필요한 경우

  1. 데이터를 대량으로 복제해야 하는 경우
  2. 특정 데이터 튜플만 복제되어야 하는 경우
  3. 연결고리가 없는 두 테이블의 데이터를 무작위로 합쳐야 하는 경우

2. INNER JOIN

A, B 두 테이블이 있을 때 서로 연결되는 Key가 있다고 가정하고, 해당 Key의 값이 같은 데이터를 가지고 와서 출력한다.

위 사진을 보면 두 테이블 모두 department_id라는 칼럼을 가지고 있다.
이렇게 두 테이블이 공통으로 가지고 있는 것을 Foreign Key(외래키)라고 하며, 이는 두 테이블을 연결하는 키가 되는 것이다.
이 Foreign Key를 JOIN의 조건으로 넣어주면 된다.

INNER JOIN으로 3개의 테이블을 JOIN하는 경우

3개의 테이블을 JOIN하는 방법은 다음과 같다.

우선 테이블1과 테이블2가 가지는 공통의 키, 즉 Foreign Key를 찾아 연결한다.
이렇게 연결된 하나의 테이블과 테이블3이 공통으로 가지는 또 다른 Foreign Key를 찾아 연결하면 된다.

3. 비등가 JOIN

두 테이블을 서로 join할 때, 서로 다른 값을 가지거나, 한쪽 데이터가 다른 쪽 테이블의 데이터 범위 내에 있는 것만 출력한다.

4. OUTER JOIN

한쪽을 기준으로 하여 다른 한쪽에 Key값이 일치하는 게 없더라도 모두 출력한다.
OUTER JOIN의 종류에는 LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN이 있다.

0개의 댓글