요약
SQL OUTER JOIN은 두 테이블을 연결할 때 일치하지 않는 데이터까지 함께 조회할 수 있는 JOIN 문법입니다. SQL INNER JOIN과 함께 SQLD 시험에서 자주 출제되며 실무에서도 누락된 데이터 확인, 전체 현황 분석 등에 많이 활용됩니다. 이번 글에서는 SQL OUTER JOIN의 개념부터 LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN 차이점까지 자세히 알아보겠습니다.
SQL OUTER JOIN이란?
SQL OUTER JOIN은 두 개 이상의 테이블을 연결할 때 공통 데이터뿐만 아니라 일치하지 않는 데이터까지 함께 조회하는 JOIN 방식입니다.
이전 글에서 살펴본 SQL INNER JOIN은 양쪽 테이블에 공통으로 존재하는 데이터만 조회했습니다.
반면 SQL OUTER JOIN은 연결 조건이 일치하지 않는 데이터도 결과에 포함할 수 있습니다.
실무에서는 고객 정보, 주문 정보, 재고 정보 등을 분석할 때 누락된 데이터를 확인해야 하는 경우가 많습니다.
이럴 때 SQL OUTER JOIN을 사용합니다.
SQL OUTER JOIN은 SQLD 시험에서도 매우 자주 등장하는 핵심 개념입니다. 더 많은 정보를 확인하고 JOIN 개념을 확실히 이해해보세요.
SQL INNER JOIN과 OUTER JOIN 차이
두 JOIN의 가장 큰 차이는 조회 대상입니다.
| 구분 | INNER JOIN | OUTER JOIN |
|---|---|---|
| 조회 대상 | 공통 데이터만 조회 | 공통 데이터 + 불일치 데이터 |
| 사용 목적 | 관계가 있는 데이터 조회 | 누락 데이터 확인 |
| SQLD 출제 빈도 | 매우 높음 | 매우 높음 |
예를 들어 고객 테이블에는 고객 정보가 있지만 주문 테이블에는 주문 기록이 없는 고객도 존재할 수 있습니다.
SQL INNER JOIN은 주문한 고객만 조회하지만 SQL OUTER JOIN은 주문하지 않은 고객까지 조회할 수 있습니다.
더 많은 정보를 확인하고 JOIN 차이점을 이해해보세요.
SQL LEFT OUTER JOIN이란?
SQL LEFT OUTER JOIN은 왼쪽 테이블의 모든 데이터를 기준으로 조회하는 방식입니다.
기본 문법은 다음과 같습니다.
SELECT 컬럼명
FROM 테이블1
LEFT OUTER JOIN 테이블2
ON 연결조건;
예제 데이터를 살펴보겠습니다.
고객 테이블(CUSTOMER)
| 고객번호 | 고객명 |
|---|---|
| 1 | 김철수 |
| 2 | 이영희 |
| 3 | 박민수 |
주문 테이블(ORDER)
| 고객번호 | 주문금액 |
|---|---|
| 1 | 100000 |
| 2 | 50000 |
다음 SQL을 실행해보겠습니다.
SELECT C.고객명,
O.주문금액
FROM CUSTOMER C
LEFT OUTER JOIN ORDER O
ON C.고객번호 = O.고객번호;
결과
| 고객명 | 주문금액 |
|---|---|
| 김철수 | 100000 |
| 이영희 | 50000 |
| 박민수 | NULL |
주문 내역이 없는 박민수도 조회됩니다.
이것이 SQL LEFT OUTER JOIN의 핵심입니다. 더 많은 정보를 확인하고 LEFT JOIN 활용 방법을 익혀보세요.
SQL RIGHT OUTER JOIN이란?
SQL RIGHT OUTER JOIN은 오른쪽 테이블을 기준으로 모든 데이터를 조회합니다.
기본 문법은 다음과 같습니다.
SELECT 컬럼명
FROM 테이블1
RIGHT OUTER JOIN 테이블2
ON 연결조건;
예를 들어 주문 데이터는 존재하지만 고객 데이터가 삭제된 경우에도 주문 내역을 확인할 수 있습니다.
실무에서는 LEFT OUTER JOIN을 더 많이 사용하지만 SQLD 시험에서는 RIGHT OUTER JOIN도 자주 출제됩니다.
더 많은 정보를 확인하고 다양한 JOIN 방식을 익혀보세요.
SQL FULL OUTER JOIN이란?
SQL FULL OUTER JOIN은 양쪽 테이블의 모든 데이터를 조회합니다.
일치하는 데이터는 연결하고 일치하지 않는 데이터도 모두 표시합니다.
SELECT 컬럼명
FROM 테이블1
FULL OUTER JOIN 테이블2
ON 연결조건;
결과 예시
| 고객명 | 주문금액 |
|---|---|
| 김철수 | 100000 |
| 이영희 | 50000 |
| 박민수 | NULL |
| NULL | 30000 |
양쪽의 누락 데이터까지 모두 확인할 수 있습니다.
데이터 정합성 점검 시 SQL FULL OUTER JOIN을 활용하는 경우가 많습니다. 더 많은 정보를 확인하고 실무 활용 사례를 알아보세요.
SQLD 시험에서 자주 나오는 LEFT JOIN 예제
SQLD 시험에서는 LEFT JOIN 결과를 예측하는 문제가 자주 출제됩니다.
다음 데이터를 살펴보겠습니다.
A 테이블
| ID |
|---|
| 1 |
| 2 |
| 3 |
B 테이블
| ID |
|---|
| 1 |
| 2 |
다음 SQL을 실행하면
SELECT *
FROM A
LEFT OUTER JOIN B
ON A.ID = B.ID;
결과는 3건이 조회됩니다.
A 테이블이 기준이기 때문입니다.
이처럼 SQLD 시험에서는 결과 행(Row) 개수를 묻는 문제가 매우 자주 등장합니다.
더 많은 정보를 확인하고 SQLD 기출문제를 분석해보세요.
OUTER JOIN과 NULL의 관계
SQL OUTER JOIN을 사용하면 NULL 값이 자주 등장합니다.
예를 들어 주문 내역이 없는 고객은 주문금액 컬럼이 NULL로 표시됩니다.
따라서 OUTER JOIN을 사용할 때는 NULL 처리도 함께 이해해야 합니다.
예시
SELECT C.고객명,
NVL(O.주문금액,0)
FROM CUSTOMER C
LEFT OUTER JOIN ORDER O
ON C.고객번호 = O.고객번호;
위 SQL은 NULL 대신 0을 표시합니다.
SQLD 시험에서도 OUTER JOIN과 NULL 관련 문제가 자주 출제됩니다. 더 많은 정보를 확인하고 NULL 처리 방법을 익혀보세요.
SQL OUTER JOIN 실무 활용 사례
SQL OUTER JOIN은 다양한 업무에서 활용됩니다.
| 업무 | 활용 사례 |
|---|---|
| 고객 분석 | 주문하지 않은 고객 조회 |
| 재고 관리 | 판매되지 않은 상품 조회 |
| 인사 관리 | 부서 미배정 직원 조회 |
| 데이터 검증 | 누락 데이터 확인 |
| 품질 관리 | 검사 이력이 없는 제품 조회 |
특히 데이터 분석 업무에서는 누락 데이터 확인을 위해 SQL OUTER JOIN을 자주 사용합니다.
더 많은 정보를 확인하고 실무 SQL 활용 능력을 높여보세요.
SQLD 시험에서 OUTER JOIN이 중요한 이유
SQLD 시험에서는 SQL OUTER JOIN 문제가 높은 빈도로 출제됩니다.
특히 다음 개념은 반드시 이해해야 합니다.
| 출제 포인트 | 중요도 |
|---|---|
| LEFT OUTER JOIN | 매우 높음 |
| RIGHT OUTER JOIN | 높음 |
| FULL OUTER JOIN | 높음 |
| 결과 건수 계산 | 매우 높음 |
| NULL 발생 여부 | 매우 높음 |
JOIN 문제는 SQLD 합격을 위해 반드시 학습해야 하는 영역입니다.
더 많은 정보를 확인하고 SQLD 시험 대비를 시작해보세요.
자주 묻는 질문(FAQ)
LEFT JOIN과 INNER JOIN 차이는 무엇인가요?
INNER JOIN은 공통 데이터만 조회하고 LEFT JOIN은 왼쪽 테이블의 모든 데이터를 조회합니다. 더 많은 정보를 확인하고 JOIN 차이점을 이해해보세요.
실무에서는 LEFT JOIN과 RIGHT JOIN 중 무엇을 많이 사용하나요?
대부분 LEFT JOIN을 더 많이 사용합니다. 더 많은 정보를 확인하고 실무 SQL 작성 방법을 익혀보세요.
SQLD 시험에 OUTER JOIN 문제가 많이 나오나요?
네. SQLD 시험에서 JOIN은 핵심 출제 영역이며 OUTER JOIN도 매우 자주 출제됩니다. 더 많은 정보를 확인하고 SQLD 기출문제를 분석해보세요.
마무리
SQL OUTER JOIN은 일치하지 않는 데이터까지 함께 조회할 수 있는 매우 중요한 JOIN 문법입니다. 특히 LEFT OUTER JOIN은 실무와 SQLD 시험 모두에서 자주 사용되므로 반드시 이해해야 합니다. SQL INNER JOIN과 SQL OUTER JOIN의 차이를 정확히 이해하고 다양한 예제를 직접 실행해보면 SQL 실력을 빠르게 향상시킬 수 있습니다. 더 많은 정보를 확인하고 다음 단계인 SQL UNION과 UNION ALL 차이점도 함께 학습해보세요.
