[sql] INNER JOIN과 FULL JOIN의 차이점

관계형 데이터베이스에서 데이터를 가져오는 데에 INNER JOIN과 FULL JOIN이 사용됩니다. 이 두 JOIN의 주요한 차이점을 살펴보겠습니다.

INNER JOIN

INNER JOIN은 두 개의 테이블 간에 공통으로 존재하는 행을 가져옵니다. 이는 두 테이블 사이에 일치하는 데이터가 있는 경우에만 결과를 반환한다는 것을 의미합니다.

예를 들어, 아래의 SQL 문은 employees 테이블과 departments 테이블 사이에서 조인을 수행하며, 조인 조건에 맞는 데이터만 반환합니다.

SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;

FULL JOIN

FULL JOIN은 두 테이블 중 한 쪽에만 존재하는 데이터도 모두 가져오며, 일치하지 않는 데이터는 NULL 값을 가집니다. 이는 두 테이블 간의 모든 데이터를 반환한다는 점이 INNER JOIN과 다릅니다.

아래의 SQL 문은 employeesdepartments 테이블 간에 FULL JOIN을 수행한 후, 조건에 맞지 않는 데이터도 모두 반환합니다.

SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
FULL JOIN departments ON employees.department_id = departments.department_id;

결론

INNER JOIN은 두 테이블 간의 매칭되는 데이터만 반환하는 반면, FULL JOIN은 두 테이블 간의 모든 데이터를 반환하며, 일치하지 않는 경우에는 NULL 값을 반환합니다.

이러한 차이를 이해하고 적절한 문맥에서 INNER JOIN 또는 FULL JOIN을 사용함으로써 데이터베이스 쿼리를 효율적으로 작성할 수 있습니다.