데이터베이스 쿼리 작성 시 자주 사용되는 개념인 Subquery와 JOIN은 복잡한 데이터 분석 및 검색을 단순화해주는 중요한 도구이다. 이 글에서는 이 두 가지 개념에 대해 자세히 설명하고자 한다.
Subquery는 쿼리 결과를 다른 쿼리 내에서 다시 활용하는 것을 의미한다. 즉, 하나의 쿼리 내에 포함된 또 다른 쿼리를 말하며, 메인 쿼리가 실행되기 전에 먼저 실행된다. Subquery는 주로 WHERE
절, FROM
절, SELECT
절 등에서 사용되며, 데이터를 필터링하거나 추가 데이터를 계산하는 데 유용하다.
SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 = (SELECT 컬럼명 FROM 테이블명 WHERE 조건);
SELECT name
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees WHERE department = 'Sales');
위 예시에서는 'Sales' 부서에서 가장 높은 급여를 받는 직원의 이름을 찾기 위해 Subquery를 사용하고 있다.
JOIN은 두 개 이상의 테이블을 결합하여 사용하는 것을 의미한다. JOIN을 통해 여러 테이블에 저장된 데이터를 하나의 결과 집합으로 결합할 수 있다. JOIN에는 여러 종류가 있으며, 각 JOIN의 형태에 따라 결과가 달라진다.
NULL
을 반환한다.NULL
을 반환한다.NULL
을 반환한다.SELECT A.컬럼명, B.컬럼명
FROM 테이블A A
JOIN 테이블B B ON A.공통컬럼 = B.공통컬럼;
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;
위 예시는 직원 테이블과 부서 테이블을 department_id
라는 공통 컬럼을 통해 결합하여 직원 이름과 부서 이름을 함께 출력하고 있다.
Subquery와 JOIN은 SQL 쿼리 작성 시 매우 강력한 도구이다. Subquery는 보다 세부적인 조건으로 데이터를 필터링하거나 계산할 때 유용하며, JOIN은 여러 테이블에 걸친 데이터를 통합하여 분석할 때 필수적이다. 이 두 가지 기법을 잘 활용하면 복잡한 데이터베이스 작업도 손쉽게 처리할 수 있다.