본문 바로가기

DB

DataBase Join이란?

SMALL

포스팅 계기

 데이터베이스에서 "Join"이라는 개념을 처음 접하면 다소 어렵게 느껴질 수 있다. 나는 알고리즘 문제를 포스팅할 때 데이터베이스 관련 문제에서 Join 개념이 등장하는 것을 보고, 이를 모르는 분들이 이해하기 쉽게 설명하는 글을 작성해야겠다고 생각했다. 알고리즘을 풀다 보면 SQL 문제에서 테이블을 합치는 개념이 필수적으로 나오는데, Join을 모르면 문제 해결이 어려울 수 있다. 그래서 이번 글에서는 Join이 무엇인지, 그리고 어떤 상황에서 필요한지 쉽게 설명해 보겠다.


Join 이란?

 데이터베이스에서 "Join"이라는 개념을 처음 접하면 다소 어렵게 느껴질 수 있다. 하지만 현실에서의 예시를 통해 이해하면 생각보다 간단한 개념이라는 걸 알 수 있다. 이번 글에서는 Join이 무엇인지, 그리고 어떤 상황에서 필요한지 쉽게 설명해 보겠다.

 

**Join(조인)**은 데이터베이스에서 두 개 이상의 테이블을 공통된 값을 기준으로 연결하는 방법이다. 우리가 일상에서 다양한 정보를 합쳐서 보는 것처럼, 데이터베이스에서도 서로 다른 테이블의 정보를 합쳐서 활용해야 할 때가 많다.

 

출처 : ChatGPT


 

Join의 종류

데이터베이스에서 Join에는 여러 종류가 있다. 대표적으로 다음과 같은 Join이 자주 사용된다.

 

INNER JOIN (내부 조인)

  • 두 테이블에서 공통된 값이 있는 행만 반환하는 Join
  • 아래 실생활 예시에서 사용된 조인이 바로 INNER JOIN이다.
  • SQL 예제: SELECT Customers. 이름, Orders. 메뉴 FROM Customers INNER JOIN Orders ON Customers. 손님 ID = Orders. 손님 ID;

LEFT JOIN (왼쪽 조인)

  • 왼쪽 테이블(기준 테이블)의 모든 데이터를 가져오고, 오른쪽 테이블에 매칭되는 데이터가 없으면 NULL을 반환하는 Join
  • 예를 들어, 주문을 하지 않은 손님까지 포함하고 싶다면 LEFT JOIN을 사용할 수 있다.

RIGHT JOIN (오른쪽 조인)

  • RIGHT JOIN은 LEFT JOIN과 반대로 오른쪽 테이블의 모든 데이터를 가져오고, 왼쪽 테이블에 매칭되는 데이터가 없으면 NULL을 반환한다.

FULL OUTER JOIN (완전 외부 조인)

  • 두 테이블의 모든 데이터를 가져오며, 매칭되지 않는 값은 NULL로 채운다.

 


Join 실생활 예시로 이해하기

 

식당에서 주문을 관리하는 시스템이 있다고 가정해 봅시다. 이 시스템은 손님 정보주문 정보를 따로 저장하는 두 개의 테이블을 사용한다.

손님 테이블 (Customers Table)

손님 ID 이름
1 철수
2 영희
3 민수

 

주문 테이블 (Orders Table)

주문 ID 손님 ID 메뉴
101 1 김밥
102 2 라면
103 1 떡볶이

 

 이렇게 데이터를 따로 저장하는 이유는 데이터의 중복을 방지하고 관리하기 쉽게 하기 위해서. 만약 손님 이름을 주문 테이블에도 저장하면, 같은 사람이 여러 번 주문할 때마다 이름이 반복해서 저장될 것이고, 이름이 변경되면 모든 주문 데이터를 수정해야 하는 번거로움이 생긴다.

이런 경우 Join을 사용하면 편리해진다. 이제 Join을 사용해서 두 테이블을 합쳐 보겠다.

 

Join을 이용해 두 개의 테이블 합치기

손님 테이블과 주문 테이블을 손님 ID를 기준으로 연결하면 다음과 같은 결과를 얻을 수 있다.

손님 ID 이름 주문 ID 메뉴
1 철수 101 김밥
1 철수 103 떡볶이
2 영희 102 라면

 

 이제 "철수"가 김밥과 떡볶이를 주문했다는 것을 쉽게 알 수 있는 것을 확인할 수 있다.

이렇게 Join을 사용하면 각각의 테이블에서 따로 저장된 데이터를 하나의 표처럼 볼 수 있어 자주 사용되는 명령어 중 하나다.


Join을 사용하는 Case

 데이터베이스에서는 여러 개의 테이블에 데이터를 분산하여 저장하는 것이 일반적이다. 이때 필요한 정보를 한 번에 가져오려면 Join이 필요하다.

사용 사례:

  • 쇼핑몰에서 "사용자 정보"와 "구매 내역"을 합쳐서 사용자별 구매 목록을 확인할 때
  • 병원에서 "환자 정보"와 "진료 기록"을 합쳐서 환자별 진료 내역을 조회할 때
  • 기업에서 "직원 정보"와 "급여 정보"를 합쳐서 급여 지급 내역을 조회할 때

결론

 Join은 데이터베이스에서 여러 개의 테이블을 합쳐 원하는 정보를 얻을 수 있도록 도와주는 중요한 개념이다. SQL에서 Join을 활용하면 더욱 효율적으로 데이터를 검색하고 활용할 수 있다.

 처음에는 어렵게 느껴질 수 있지만, 일상적인 데이터 관리와 비교해 보면 이해하기 쉽다. 해당 내용을 활용하여 프로그래머스 문제도 같이 풀어보자!

'DB' 카테고리의 다른 글

WITH 절과 NTILE 함수로 SQL 분위(Percentile) 분석하기  (0) 2025.02.12