데이터 및 C언어/SQL 공부

[SQL] SQL 공부 : 서브쿼리.

  • -
반응형

 

[SQL] SQL 공부 : 서브쿼리.

 


 

   ∇서브쿼리[ Subquery ]

       : SQL 쿼리 내에서 또 다른 SQL 쿼리를 포함하는 구문입니다. [ SELECT문안에 또 다른 SELECT문 ]

      

         - 서브 쿼리(혹은 이너쿼리)는 종종 메인 쿼리(부모 쿼리/외부쿼리)의 조건을 만족시키기 위한 데이터를 제공하거나,

            계산된 값을 기반으로 메인 쿼리의 결과를 결정하는데 사용됩니다.

            { 중첩 쿼리라고도 불립니다. }

 

         - 복잡한 데이터 검색 및 조작 작업을 수행할 때 매우 유용합니다.

 

 

      - 서브 쿼리는 메인쿼리의 컬럼을 사용할 수 있지만, 메인 쿼리는 서브 쿼리의 컬럼을 사용할 수 없습니다.

             - 즉, 서브쿼리가 메인쿼리의 특정 컬럼 값을 참조할 수 있다는 뜻 입니다.

SELECT e1.first_name, e1.last_name
FROM employees e1
WHERE e1.salary >
(SELECT AVG(e2.salary) FROM employees e2 WHERE e1.department_id = e2.department_id);

    - 서브쿼리에서만 e1, e2 모두 참조.

 

             # 메인쿼리가 서브쿼리의 컬럼을 사용할 수 없는 이유.

                 : 메인쿼리는 서브쿼리 내에서 정의된 컬럼을 직접 참조할 수 없습니다.

                   이는 서브쿼리가 메인쿼리의 컨텍스트 내에서 별도로 실행되기 때문입니다.

 

 


∇ 서브쿼리 사용이 가능한 곳.

    : SELECT / FROM /WHERE /HAVING/ ORDER BY/ INSERT문의 VALUES/ UPDATE문의 SET

 

∇ 서브쿼리의 특징.

        - 서브쿼리리는 쿼리르 구조화시키므로, 쿼리의 각 부분을 명확히 구분할 수 있게 해줍니다.

        - 서브쿼리는 복잡한 JOIN이나 UNION과 같은 동작을 수행할 수 있는 또다른 방법을 제공합니다.

        - 서브쿼리는 복잡한 JOIN이나 UNION보다 읽기 편해 가독성이 좋습니다.

 


              고객 테이블의 회원번호와 판매 테이블의 회원번호가 같은 컬럼들 중에서 성별을 뽑아서,

               판매 테이블과 같이 SELECT.

 

-처리속도가 SELECT문 서브쿼리보다 JOIN절이 빠르기 때문에

서브쿼리보단 JOIN절을 많이 사용.

 

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.