inblog logo
|
devleekangho
    용어정리

    인라인뷰(Inline View) 또는 서브쿼리(Subquery)

    KangHo Lee's avatar
    KangHo Lee
    Dec 04, 2024
    인라인뷰(Inline View) 또는 서브쿼리(Subquery)
    Contents
    1. 인라인뷰(서브쿼리)의 종류2. 사용 예시
    • 인라인뷰(Inline View) 또는 서브쿼리(Subquery)는 SQL에서 쿼리 내에 포함된 또 다른 쿼리입니다.
    • 주 쿼리의 일부로 사용되며, 주 쿼리가 실행되기 전에 먼저 실행되어 결과를 반환합니다.

    1. 인라인뷰(서브쿼리)의 종류

    1. 스칼라 서브쿼리
        • 단일 값을 반환하는 서브쿼리입니다.
        • 주로 WHERE, HAVING, SELECT 절에서 사용됩니다.
    1. 다중 행 서브쿼리
        • 여러 행을 반환하는 서브쿼리입니다.
        • IN, ANY, ALL과 같은 연산자와 함께 사용됩니다.
    1. 다중 열 서브쿼리
        • 여러 열을 반환하는 서브쿼리입니다.
        • EXISTS와 함께 사용됩니다.

    2. 사용 예시

    WHERE 절에서의 서브쿼리

    특정 조건에 맞는 데이터를 필터링하는 예시입니다.
    SELECT employee_id, first_name, last_name FROM employees WHERE department_id = ( SELECT department_id FROM departments WHERE department_name = 'Sales' );
    • 위 예제에서, 서브쿼리는 Sales 부서의 department_id를 반환하고, 주 쿼리는 해당 부서에 속한 직원들의 정보를 조회합니다.

    FROM 절에서의 서브쿼리 (인라인뷰)

    서브쿼리를 인라인뷰로 사용하는 예시입니다.
    SELECT dept_name, employee_count FROM ( SELECT department_id, COUNT(*) AS employee_count FROM employees GROUP BY department_id ) AS dept_counts JOIN departments d ON dept_counts.department_id = d.department_id;
    • 위 예제에서, 인라인뷰는 각 부서의 직원 수를 계산하고, 주 쿼리는 부서 이름과 직원 수를 조회합니다.

    장점

    • 복잡한 쿼리 분리: 인라인뷰를 사용하여 복잡한 쿼리를 여러 단계로 분리할 수 있습니다.
    • 재사용성: 동일한 서브쿼리를 여러 곳에서 재사용할 수 있습니다.
    • 가독성: 복잡한 논리를 인라인뷰로 분리하여 메인 쿼리를 더 이해하기 쉽게 만들 수 있습니다.

    주의사항

    • 성능: 서브쿼리가 여러 번 실행되면 성능이 저하될 수 있으므로, 적절한 인덱스를 사용하거나 JOIN으로 대체할 수 있는지 고려해야 합니다.
    • 최적화: 데이터베이스 옵티마이저가 서브쿼리를 최적화할 수 있도록 구조를 잘 설계하는 것이 중요합니다.
    Share article
    Contents
    1. 인라인뷰(서브쿼리)의 종류2. 사용 예시

    devleekangho

    RSS·Powered by Inblog