오늘은 데이터베이스에서 자주 사용되는 조인의 종류에 대해 간단히 정리하려고 한다.
조인(JOIN)이란?
두 개 이상의 테이블을 결합하여 하나의 결과물을 만드는 작업을 말한다.
MySQL에서는 'JOIN' 쿼리를 사용하여, MongoDB에서는 'lookup' 쿼리를 사용하여 조인을 처리할 수 있다.
참고로 MongoDB의 'lookup'은 성능 저하 문제가 있을 수 있어, 가능한 사용하지 않는 것이 좋다.
따라서 여러 테이블을 조인하는 작업이 많다면, 관계형 데이터베이스를 사용하는 것이 더 적합하다.
조인의 종류

내부 조인(inner join)
왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기
SELECT * FROM TableA A
INNER JOIN TableB B ON
A.key = B.key
👉 두 테이블 간에 교집합
왼쪽 조인(left outer jon)
왼쪽 테이블의 모든 행이 결과 테이블에 표기
SELECT * FROM TableA A
LEFT JOIN TableB B ON
A.key = B.key
👉 테이블 B의 일치하는 부분의 레코드와 함께 테이블 A를 기준으로 완전한 레코드 집합 생성
테이블 B에 일치하는 항목이 없으면 해당 값은 null 값
오른쪽 조인(right outer join)
오른쪽 테이블의 모든 행이 결과 테이블에 표기
SELECT * FROM TableA A
RIGHT JOIN TableB B ON
A.key = B.key
👉 테이블 A의 일치하는 부분의 레코드와 함께 테이블 B를 기준으로 완전한 레코드 집합 생성
테이블 A에 일치하는 항목이 없으면 해당 값은 null 값
합집합 조인(full outer join)
두 개의 테이블을 기반으로 조인 조건에 만족하지 않는 행까지 모두 표기
SELECT * FROM TableA A
FULL OUTER JOIN TableB B ON
A.key = B.key
👉 양쪽 테이블에서 일치하는 레코드와 함께 테이블 A와 테이블 B의 모든 레코드 집합 생성
일치하는 항목이 없으면 누락된 쪽에 해당하는 값은 null 값
👀 SQL의 JOIN을 시각화해서 볼 수 있는 사이트를 통해 어떻게 JOIN을 구축해야 하는지 쉽게 확인할 수 있다.
https://sql-joins.leopard.in.ua/
SQL Joins Visualizer
Please select how do you want to do SQL JOIN between two table Copy SQL
sql-joins.leopard.in.ua
출처
면접을 위한 CS 전공지식 노트, 주홍철
https://velog.io/@slr-09/%EC%A1%B0%EC%9D%B8%EC%9D%98-%EC%A2%85%EB%A5%98
'Study > Computer Science' 카테고리의 다른 글
| [네트워크] RESTful API 이해하기 (0) | 2024.10.22 |
|---|---|
| [자료구조] 선형/비선형 자료 구조 (1) | 2024.08.28 |
| [운영체제] 프로세스 스케줄링 (0) | 2024.07.26 |
| [디자인 패턴] GoF(Gang of Fours) 디자인 패턴 종류와 특징 (0) | 2024.07.24 |
| [자료구조] 시간 복잡도, 공간 복잡도 (0) | 2024.07.18 |