SQL에서 테이블을 결합할 때 가장 많이 사용되는 방식은 내부 조인(Inner Join)과 외부 조인(Outer Join)입니다. 두 조인 모두 여러 테이블의 데이터를 연결하지만, 결과를 반환하는 방식과 활용 목적에서 뚜렷한 차이가 있습니다. 이 글에서는 두 조인의 특징, 문법, 성능 차이를 비교하여 정리합니다.
내부 조인(Inner Join)이란?
내부 조인은 두 테이블 간에 일치하는 데이터만 결합하여 반환하는 가장 기본적인 조인 방식입니다. 주요 특징은 다음과 같습니다.
- 사용되는 절은
INNER JOIN과JOIN입니다. - 두 개 이상의 테이블에서 일치하는 튜플(행)만 결합하여 반환합니다.
- 공통 속성이 없으면 결과로 아무것도 반환되지 않습니다(빈 결과).
- 튜플 수가 많을 경우, 외부 조인에 비해 처리 속도가 빠릅니다.
- 특정 속성에 대한 상세 정보가 필요할 때 유용하게 사용됩니다.
JOIN과INNER JOIN은 동일한 방식으로 동작합니다.
내부 조인 문법
SELECT *
FROM table_1
INNER JOIN table_2
ON table_1.column_name = table_2.column_name;
위 문법에서 INNER JOIN 대신 단순히 JOIN을 사용해도 같은 결과를 얻습니다.
외부 조인(Outer Join)이란?
외부 조인은 조인 조건이 일치하지 않더라도 지정된 테이블의 데이터를 모두 포함하여 반환하는 방식입니다. 주요 특징은 다음과 같습니다.
- 조인 조건이 맞지 않아도 해당 테이블의 행을 반환합니다.
LEFT OUTER JOIN,RIGHT OUTER JOIN,FULL OUTER JOIN세 가지 절을 사용할 수 있습니다.- 공통 속성의 존재 여부에 의존하지 않습니다.
- 매칭되는 값이 없는 경우, 빈 자리에는 NULL이 채워집니다.
- 내부 조인에 비해 처리 속도가 느립니다.
- 테이블의 전체 정보가 필요할 때 사용됩니다.
FULL OUTER JOIN과FULL JOIN은 동일하게 동작합니다.
외부 조인 문법
SELECT *
FROM table_1
LEFT OUTER JOIN / RIGHT OUTER JOIN
/ FULL OUTER JOIN / FULL JOIN table_2
ON table_1.column_name = table_2.column_name;
내부 조인 vs 외부 조인 비교 요약
| 구분 | 내부 조인(Inner Join) | 외부 조인(Outer Join) |
|---|---|---|
| 반환 결과 | 양쪽 테이블에서 일치하는 행만 반환 | 일치하지 않는 행도 포함하여 반환 |
| 사용 절 | JOIN, INNER JOIN | LEFT/RIGHT/FULL OUTER JOIN, FULL JOIN |
| NULL 처리 | 불필요 (일치 데이터만 반환) | 미일치 부분을 NULL로 채움 |
| 성능 | 상대적으로 빠름 | 상대적으로 느림 |
| 활용 사례 | 특정 속성의 상세 정보 조회 | 테이블 전체 정보 확인 |
마무리
두 테이블에서 교집합 데이터만 필요하다면 내부 조인을, 한쪽 테이블의 누락된 데이터까지 모두 확인해야 한다면 외부 조인을 선택하는 것이 좋습니다. 데이터의 성격과 조회 목적에 맞게 적절한 조인 방식을 사용하면 쿼리의 정확성과 성능을 모두 확보할 수 있습니다.