GitHub

https://github.com/Choidongjun0830

CS

4.6 조인의 종류

gogi masidda 2024. 9. 28. 16:18

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다.

 

조인이란 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것이다. 

MySQL에서는 JOIN이라는 쿼리로, MongoDB에서는 lookup이라는 쿼리로 이를 처리할 수 있다.

 

(MongoDB를 사용할 때 lookup은 되도록 사용하지 말기. 관계형 데이터베이스에 비해 lookup의 성능이 떨어진다. 

-> 여러 테이블을 조인하는 작업이 많을 경우에는 MongoDB보다는 관계형 데이터베이스를 써야 한다.)

 

  • 내부 조인(inner join)
    • 왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기된다.
    • 교집합
SELECT * FROM TableA A
INNER JOIN TableB B ON
A.key = B.key
  • 왼쪽 조인(left outer join)
    • 왼쪽 테이블의 모든 행이 결과 테이블에 표기된다.
    • 테이블 B의 일치하는 부분의 레코드와 함께 테이블 A를 기준으로 완전한 레코드 집합을 생성한다.
    • 만약 테이블 B에 일치하는 항목이 없으면 해당 값은 null값이 된다.
SELECT * FROM TableA A
LEFT JOIN TableB B ON
A.key = B.key
  • 오른쪽 조인(right outer join)
    • 오른쪽 테이블의 모든 행이 결과 테이블에 표기된다.
    • 테이블 A의 일치하는 부분의 레코드와 함께 테이블 B를 기준으로 완전한 레코드 집합을 생성한다.
    • 만약 테이블 A에 일치하는 항목이 없으면 해당 값은 null값이 된다.
SELECT * FROM TableA A
RIGHT JOIN TableB B ON
A.key = B.key
  • 합집합 조인(full outer join)
    • 두 개의 테이블을 기반으로 조인 조건에 만족하지 않는 행까지 모두 표기된다. 
    • 이때 일치하는 항목이 없으면 누락된 쪽에 null 값이 포함되어 출력된다. 
SELECT * FROM TableA A
FULL OUTER JOIN TableB B ON
A.key = B.key
728x90

'CS' 카테고리의 다른 글

5.1 복잡도  (1) 2024.10.01
4.7 조인의 원리  (2) 2024.09.30
4.5 인덱스  (0) 2024.09.27
4.4 데이터베이스의 종류  (2) 2024.09.26
4.3 트랜잭션과 무결성  (0) 2024.09.24