Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

SQL INNER JOIN vs OUTER JOIN — 내부 조인과 외부 조인의 차이점 총정리

SQL에서 테이블을 결합할 때 가장 많이 사용되는 방식은 내부 조인(Inner Join)외부 조인(Outer Join)입니다. 두 조인 모두 여러 테이블의 데이터를 연결하지만, 결과를 반환하는 방식과 활용 목적에서 뚜렷한 차이가 있습니다. 이 글에서는 두 조인의 특징, 문법, 성능 차이를 비교하여 정리합니다.

내부 조인(Inner Join)이란?

내부 조인은 두 테이블 간에 일치하는 데이터만 결합하여 반환하는 가장 기본적인 조인 방식입니다. 주요 특징은 다음과 같습니다.

  • 사용되는 절은 INNER JOINJOIN입니다.
  • 두 개 이상의 테이블에서 일치하는 튜플(행)만 결합하여 반환합니다.
  • 공통 속성이 없으면 결과로 아무것도 반환되지 않습니다(빈 결과).
  • 튜플 수가 많을 경우, 외부 조인에 비해 처리 속도가 빠릅니다.
  • 특정 속성에 대한 상세 정보가 필요할 때 유용하게 사용됩니다.
  • JOININNER 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 JOINFULL 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 JOINLEFT/RIGHT/FULL OUTER JOIN, FULL JOIN
NULL 처리불필요 (일치 데이터만 반환)미일치 부분을 NULL로 채움
성능상대적으로 빠름상대적으로 느림
활용 사례특정 속성의 상세 정보 조회테이블 전체 정보 확인

마무리

두 테이블에서 교집합 데이터만 필요하다면 내부 조인을, 한쪽 테이블의 누락된 데이터까지 모두 확인해야 한다면 외부 조인을 선택하는 것이 좋습니다. 데이터의 성격과 조회 목적에 맞게 적절한 조인 방식을 사용하면 쿼리의 정확성과 성능을 모두 확보할 수 있습니다.