이 글에서 꼭 잡아야 할 것
실무에서는 매칭되지 않은 데이터도 보고 싶을 때가 많다. OUTER JOIN은 누락된 쪽을 NULL로 채워 결과에 남기며, 오라클 전통 `(+)` 문법도 시험에서 여전히 자주 등장한다.
OUTER JOIN은 관계가 없는 데이터도 놓치지 않기 위한 문법이다. 예를 들어 부서 테이블을 기준으로 직원을 조회하면 직원이 없는 부서도 보고 싶을 수 있다. 이때 어떤 쪽을 보존할지 결정하는 감각이 가장 중요하다.
개념 지도와 이해 포인트
대표 문법 패턴
SELECT d.department_name,
e.last_name
FROM departments d
LEFT OUTER JOIN employees e
ON d.department_id = e.department_id
ORDER BY d.department_name;
SELECT d.department_name, e.last_name
FROM departments d, employees e
WHERE d.department_id = e.department_id(+);
문법 읽는 포인트
- LEFT JOIN은 왼쪽 테이블을 기준으로 모두 남긴다.
- 오라클 전통 문법에서는 NULL로 보완될 쪽 컬럼에 `(+)`를 붙인다.
- OUTER JOIN 결과는 매칭되지 않은 행이 포함되므로 NULL 해석이 중요하다.
핵심 용어
- LEFT JOIN
- RIGHT JOIN
- (+)
직원이 없는 부서까지 함께 보기
OUTER JOIN은 단순히 행을 더 많이 보여주는 문법이 아니라, 기준 집합을 무엇으로 볼지 결정하는 설계 도구다. 보고 싶은 대상이 부서인지 직원인지 먼저 정하면 방향이 훨씬 명확해진다.
SELECT d.department_id,
d.department_name,
COUNT(e.employee_id) AS emp_count
FROM departments d
LEFT JOIN employees e
ON d.department_id = e.department_id
GROUP BY d.department_id, d.department_name
ORDER BY d.department_id;
수험 체크포인트와 자주 하는 실수
시험 체크포인트
- OUTER JOIN 문제는 어느 테이블을 보존하는지 먼저 표시해 두면 해석이 쉬워진다.
- 전통 `(+)` 문법은 ANSI JOIN으로 바꿔 보는 연습이 큰 도움이 된다.
- 외부 조인 뒤 COUNT 해석에서는 NULL 제외 특성을 함께 고려해야 한다.
자주 하는 실수
- LEFT와 RIGHT 방향을 머릿속에서 뒤집어 해석하는 실수
- OUTER JOIN인데 WHERE 조건으로 다시 NULL 보완 행을 제거해 버리는 실수
- `(+)`를 잘못된 컬럼 쪽에 붙이는 실수
연결 학습
기본 조인과 외부 조인이 정리되면 다양한 조인 패턴을 확장할 수 있다. 다음 챕터에서는 SELF JOIN, CROSS JOIN, 비등가 조인을 다룬다.
댓글 0
작성자 이름과 댓글 내용을 입력하면 바로 등록됩니다. 답글은 한 단계까지 지원하고, 댓글은 최대 200자까지 작성할 수 있습니다.
같은 카테고리에서 이어서 읽기
지금 읽은 글과 가까운 흐름의 글 5개를 모아 두었습니다. 바로 앞뒤 문맥을 이어서 읽고 싶을 때 가장 편합니다.
집계 함수: COUNT, SUM, AVG, MIN, MAX
집계 함수는 여러 행을 하나의 요약값으로 압축한다. 개수, 합계, 평균, 최솟값, 최댓값을 정확히 다루면 데이터 요약 문제를 빠르게 풀 수 있다.
GROUP BY와 HAVING으로 그룹별 집계하기
집계 함수의 진짜 힘은 그룹 단위 요약에서 드러난다. GROUP BY는 데이터를 기준별로 묶고, HAVING은 집계 결과를 다시 필터링한다.
조인의 출발점: ANSI INNER JOIN
관계형 데이터베이스의 핵심은 테이블을 연결해 의미를 복원하는 데 있다. INNER JOIN은 가장 기본적인 조인으로, 서로 매칭되는 데이터만 결합한다.
SELF JOIN, CROSS JOIN, 비등가 조인
조인은 같은 테이블을 다시 붙일 수도 있고, 범위 조건으로 연결할 수도 있다. SELF JOIN, CROSS JOIN, 비등가 조인은 조인 개념을 깊게 이해했는지 확인하는 좋은 주제다.
서브쿼리 기본: 단일행 서브쿼리 읽는 법
서브쿼리는 하나의 질의 안에서 다른 질의를 이용하는 문법이다. 먼저 한 값을 구하고, 그 값을 바탕으로 바깥 질의를 실행하는 단일행 서브쿼리부터 이해하면 전체 구조가 쉬워진다.
댓글을 불러오는 중입니다.