SQL에서 JOIN은 두 개 이상의 테이블을 결합하여 데이터를 검색하는 데 사용됩니다. 주로 키(key) 값을 기반으로 테이블을 연결합니다.
INNER JOIN
INNER JOIN은 연결된 테이블 사이에서 일치하는 데이터를 반환합니다. 아래는 예시 코드입니다.
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.department_id;
위의 코드는 employees 테이블과 departments 테이블을 employee_id와 department_id로 INNER JOIN하여 직원과 부서의 정보를 반환합니다.
LEFT JOIN
LEFT JOIN은 왼쪽 테이블의 모든 데이터와 오른쪽 테이블에서 일치하는 데이터를 반환합니다. 일치하는 값이 없는 경우에는 NULL 값을 반환합니다. 아래는 예시 코드입니다.
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;
위의 코드는 employees 테이블과 departments 테이블을 employee_id와 department_id로 LEFT JOIN하여 모든 직원과 일치하는 부서 정보를 반환하며, 일치하는 값이 없는 경우에는 NULL 값을 반환합니다.
예외 처리
JOIN을 사용할 때 주의해야 할 점은 예외 처리입니다. 만약 JOIN 조건에 맞지 않는 데이터가 있는 경우, 예외 처리를 통해 처리할 수 있습니다. 아래는 예시 코드입니다.
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id
WHERE departments.department_id IS NULL;
위의 코드는 employees 테이블과 departments 테이블을 LEFT JOIN하여 부서 정보가 일치하지 않는 경우를 반환합니다.
결론
JOIN은 SQL에서 테이블 간에 데이터를 연결하고 결합하는 강력한 기능입니다. INNER JOIN과 LEFT JOIN에 대한 이해와 예외 처리를 통해 효과적으로 데이터를 처리할 수 있습니다.
자세한 내용은 Oracle의 공식 문서를 참조할 수 있습니다.