본문 바로가기
sqld

관계와 조인(Join)의 개념

by 자격증원톱 2026. 2. 21.
반응형

관계와 조인(Join)의 개념

반응형

 

1) 조인(Join)이란?

  • 서로 다른 테이블을 공통 키(보통 PK–FK)로 연결해서 한 번에 조회하는 방법입니다.
  • 관계형 DB에서는 데이터를 테이블로 나눠 저장하므로(정규화), 필요한 정보를 한 화면에 보려면 조인이 자주 필요합니다.

예시(고객 + 주문)

  • 고객 이름은 Customers 테이블에 있고,
  • 주문 정보는 Orders 테이블에 있습니다.
    둘을 같이 보려면 CUSTOMER_ID로 연결(조인)합니다.

2) 예시 테이블 구조(이미지 내용)

  • CUSTOMERS(고객)
    • CUSTOMER_ID(PK), NAME, ADDRESS, …
  • ORDERS(주문)
    • ORDER_ID(PK), CUSTOMER_ID(FK), STATUS, SALESMAN_ID, …

핵심
ORDERS.CUSTOMER_ID가 CUSTOMERS.CUSTOMER_ID를 참조(FK) 하므로 두 테이블은 연결 가능합니다.


3) 내부 조인(INNER JOIN) 예제(이미지 쿼리)

이미지의 SQL은 이런 의미입니다.

SELECT
	A.CUSTOMER_ID,
    A.NAME,
    A.ADDRESS,
    B.ORDER_ID,
    B.STATUS,
    B.SALESMAN_ID
FROM CUSTOMERS A
INNER JOIN ORDERS B
ON A.CUSTOMER_ID = B.CUSTOMER_ID;
 
 
 

쉬운 해석

  • CUSTOMERS를 A, ORDERS를 B라고 줄여 부름(별칭)
  • A.CUSTOMER_ID = B.CUSTOMER_ID가 같은 행끼리 붙임
  • 붙인 결과에서 고객정보 + 주문정보를 한 번에 출력

INNER JOIN 특징

  • 양쪽에 모두 존재하는 데이터만 나옵니다.
    즉, 주문이 있는 고객만 결과에 나옵니다(주문 없는 고객은 제외).

4) 결과가 이렇게 나오는 이유(중요 포인트)

고객 1명이 주문을 여러 번 하면 결과는 이렇게 됩니다.

예시

  • 고객 46번이 주문 3건이면:
CUSTOMER_ID NAME ORDER_ID STATUS
46 홍길동 26 배송중
46 홍길동 12 배송중
46 홍길동 31 주문취소

이유
조인은 “고객 1명 + 주문 N건”이면 결과가 N줄로 늘어나는 구조입니다.


5) SQL 해석 포인트(이미지 요약)

  • FROM: 기준 테이블을 잡음(CUSTOMERS)
  • JOIN + ON: 어떤 키로 붙일지 결정(CUSTOMER_ID)
  • SELECT: 어떤 컬럼을 보여줄지 결정(고객 컬럼 + 주문 컬럼)

6) SQL 쿼리 스타일(가독성) 요지

이미지 마지막은 “정답보다 실무에서 중요한 습관”을 말합니다.

  • SELECT 컬럼은 줄바꿈으로 정렬
  • FROM / JOIN / ON / WHERE는 줄을 나누기
  • 들여쓰기(Indent) 규칙 통일
  • AND/OR 조건도 줄 맞춰 쓰기
    → 이렇게 하면 쿼리가 길어져도 읽기 쉽고 유지보수가 편합니다.

예시(가독성 좋게)

SELECT
    A.customer_id,
    A.name,
    B.order_id,
    B.status
FROM customers AS A
INNER JOIN orders AS B
ON A.customer_id = B.customer_id
ORDER BY B.order_id DESC;
 
 
 

초간단 요약

  • JOIN = 테이블을 키로 연결해서 한 결과로 조회
  • INNER JOIN = 양쪽에 매칭되는 데이터만 출력
  • 고객 1명에 주문이 여러 건이면 결과는 여러 줄로 늘어남
  • SQL은 가독성 있게 쓰는 스타일이 중요
반응형

'sqld' 카테고리의 다른 글

트랜젝션에 대해 알아보자!  (0) 2026.02.21
계층형 데이터모델에 대해 알아봅시다!  (0) 2026.02.21
반정규화는 무엇인가요?  (0) 2026.02.21
정규화의 형태에대해 알아보자  (0) 2026.02.20
정규화의 개념  (0) 2026.02.20