관계와 조인(Join)의 개념
f
firststep 에디터
IT / 자격증 전문 라이터
2026년 2월 21일741
관계와 조인(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은 가독성 있게 쓰는 스타일이 중요
f
firststep 에디터 · IT / 자격증 전문 라이터
firststep.kr의 실무 에디터로서 무언가를 처음 도전하는 분들이 헤매지 않도록 검증된 지식과 실습 가이드를 작성합니다.
댓글 0개
댓글을 작성하려면 로그인이 필요합니다
간단한 이메일과 비밀번호로 3초 만에 가입하고 의견을 남겨보세요.
첫 번째 댓글을 남겨보세요!