본문 바로가기
Computer Science/데이터베이스

[데이터베이스] JOIN

by Sky Titan 2020. 10. 3.
728x90

JOIN

  • 2개의 테이블에 대해서 서로 연관되어있는 튜플들을 결합하여 새로운 릴레이션을 반환하는 것을 의미한다.
  • 쉽게 말해 2개의 테이블에서 데이터들을 검색하는 방법이다.

 

1. INNER JOIN

  • 2개의 테이블이 모두 가지고 있는 튜플들만 반환하는 방법이다.
  • 교집합
SELECT A.name, B.age FROM A INNER JOIN B ON A.ID = B.ID

 

 

2. LEFT OUTER JOIN

  • JOIN 연산자 왼쪽에 위치한 테이블의 튜플 모두를 반환한다.
  • JOIN 되지 않는 튜플들의 오른쪽 COLUMN값은 NULL로 채운다.
SELECT A.name, B.age FROM A LEFT OUTER JOIN B ON A.ID = B.ID

 

3. RIGHT OUTER JOIN

  • JOIN 연산자 오른쪽에 위치한 테이블의 튜플 모두를 반환한다.
  • JOIN 되지 않는 튜플들의 왼쪽 테이블 COLUMN값은 NULL로 채운다.
SELECT A.name, B.age FROM A RIGHT OUTER JOIN B ON A.ID = B.ID

 

4. FULL OUTER JOIN

  • LEFT, RIGHT OUTER JOIN을 합친 것과 같은 기능을 한다.
  • 양쪽 테이블 모든 튜플들을 반환한다.
  • JOIN 되지 않는 튜플들의 빈 COLUMN값은 NULL로 채운다.
  • 합집합
SELECT A.name, B.age FROM A FULL OUTER JOIN B ON A.ID = B.ID

 

5. CROSS JOIN

  • 양쪽 테이블의 튜플들의 모든 순서쌍을 반환한다.
  • 조건 없는 INNER JOIN이다.
  • 예를 들어, 왼쪽 테이블의 튜플 수가 4개고, 오른쪽 테이블의 튜플 수가 5개라면 4 x 5 = 20개의 튜플을 반환한다.
SELECT A.name, B.age FROM A CROSS JOIN B

 

6. SELF JOIN

  • 같은 테이블끼리 속성을 JOIN한다.
  • 한 테이블의 복사본을 만들어 JOIN시킨다는 개념으로 생각하면 된다.
SELECT A1.name FROM A as A1, A as A2 WHERE A1.ID = A2.ID

 

728x90

댓글