조인은 두 개 이상의 테이블을 공통 컬럼(키) 으로 연결해 하나의 결과로 조회하는 연산입니다. 관계형 DB는 데이터를 나눠 저장하므로(정규화), 조회할 때 조인으로 다시 합칩니다. 시험은 "이 조인의 결과표(행 수)는?" 을 가장 많이 묻습니다.
이 단원, 시험에서 어디에 나오나 (출제 비중)
- 제2과목 「SQL 기본 및 활용」 = 40문항 · 80점. 조인은 배점 최상위권의 고빈출·고난도 단원입니다.
- 조인 유형 구분과 결과 행 수 계산(카티션 곱) 이 핵심 출제 각도입니다. (단원별 문항수는 공개되지 않습니다 — 출처: KDATA 출제기준.)
출제 포인트 — 시험이 실제로 묻는 것
- INNER / OUTER(LEFT·RIGHT·FULL) / CROSS / SELF가 어떤 행을 남기는지 (최다 출제)
- 조인 조건 누락 = 카티션 곱, 행 수 = M×N
- OUTER JOIN의 NULL 채움과 어느 쪽을 다 남길지(방향)
- 오라클
(+)↔ ANSI OUTER JOIN 대응 (문법 상세는 표준 조인 단원)
① 종류별로 남는 행 — 한눈에
그림 1. 노란 영역이 각 조인이 반환하는 행. (자작 도식)
| 조인 | 남는 행 | 짝 없을 때 |
|---|---|---|
| INNER | 양쪽이 일치하는 행만 | 제외 |
| LEFT OUTER | 왼쪽 전부 + 일치분 | 오른쪽 컬럼 NULL |
| RIGHT OUTER | 오른쪽 전부 + 일치분 | 왼쪽 컬럼 NULL |
| FULL OUTER | 양쪽 전부 | 없는 쪽 NULL |
| CROSS | 모든 조합(M×N) | (조건 없음) |
| SELF | 같은 표를 별칭 2개로 | 조건에 따름 |
② 구체 예시 — 짝 없는 행의 운명
-- 주문한 회원만 (INNER)
SELECT m.이름, o.금액
FROM 회원 m INNER JOIN 주문 o ON m.회원번호 = o.회원번호;
-- 주문 없는 회원까지 (LEFT) → 금액은 NULL
SELECT m.이름, o.금액
FROM 회원 m LEFT OUTER JOIN 주문 o ON m.회원번호 = o.회원번호;
그림 2. INNER JOIN 결과 — 짝 없는 '박'은 빠진다. 모두 남기려면 LEFT OUTER. (자작 도식)
판별법: 통째로 남길 표를 먼저 정하고, 그 표를
LEFT(왼쪽)/RIGHT(오른쪽) 자리에 둡니다. INNER는 짝 있는 행만 남겨 한쪽에만 있는 데이터가 사라집니다.
③ 카티션 곱 — ON 누락이면 행 수는 M×N
연결 조건(ON)을 빠뜨리면 모든 행 조합이 만들어집니다(CROSS JOIN과 동일).
SELECT * FROM 회원, 주문; -- 조건 없음: 회원 4행 × 주문 3행 = 12행
시험은 "회원 4행, 주문 3행일 때 결과 행 수는?" 처럼 곱셈으로 계산하게 합니다. 조인 문제에서 결과 행 수가 갑자기 커졌다면 조건 누락부터 의심하세요.
④ 오라클 (+) 표기 — 붙는 쪽이 반대
-- ANSI -- 오라클 전통
FROM a LEFT JOIN b ON a.k = b.k FROM a, b WHERE a.k = b.k(+)
(+)는 NULL을 채워줄(부족한) 쪽에 붙습니다. a.k = b.k(+)는 b가 없어도 a를 다 남기는 LEFT OUTER JOIN — "다 남길 쪽에 (+)"로 외우면 반대로 틀립니다.
⑤ SELF JOIN — 같은 표를 두 번
-- 사원과 그 관리자(같은 사원 테이블을 별칭 2개로)
SELECT e.이름 AS 사원, m.이름 AS 관리자
FROM 사원 e LEFT JOIN 사원 m ON e.관리자번호 = m.사번;
같은 테이블에 별칭을 2개 주어 자기 자신과 조인합니다. 계층(상사-부하) 구조 조회가 대표 예입니다.
한 장 정리 (암기 카드)
- INNER 교집합 / LEFT·RIGHT 한쪽 전체+NULL / FULL 합집합 / CROSS M×N / SELF 자기조인.
- ON 누락 = 카티션 곱, 행 수는 두 표의 곱.
- 오라클
a.k = b.k(+)= a를 다 남기는 LEFT — (+)는 NULL 채울 쪽. - 문법 상세(ON/USING/NATURAL)는 표준 조인 단원에서.
참고 출처
- 시험 과목·배점: 한국데이터산업진흥원(KDATA) 데이터자격검정 (2026년 7월 확인)
- 조인 동작은 ANSI SQL·오라클 SQL 표기에 근거하며, 본문 예시·도식·설명은 자작입니다.