서브쿼리

이수보🧑🏻‍💻·2022년 1월 24일
0

오라클

목록 보기
8/11

  • 서브쿼리

서브쿼리란 하나의 SQL문 안에 포함되어 있는 또 다른 SQL쿼리를 말합니다.
즉 보조Query로써 최종결과를 출력하기 위해 사용되는 계산의 중간값 등을 반환하기 위한 쿼리이다.

서브쿼리 사항

  1. 서브쿼리는 반드시 '( )' 안에 기술해야합니다.
  2. SELECT 절을 사용한다면 SELECT 절에 필수 입력사항을 입력해야합니다.(FROM)
  3. 서브쿼리가 사용 가능한 곳(SELECT, FROM, WHERE-AND, HAVING, ORDER BY, INSERT-VALUES, UPDATE-SET)

서브쿼리로 인해 나오는 행의 개수에 따라 단일행 / 다중행 서브쿼리로 구분이 됩니다.

단일 행 서브쿼리

서브쿼리의 결과가 1건으로 (<, >, <=, >=, <>)와 같이 사용합니다.

다중 행 서브쿼리

서브쿼리의 결과가 1건 이상으로 (IN, ALL, ANY, SOME)과 같이 사용합니다.



사용예)

1. WHERE 절

메인쿼리

         SELECT EMPLOYEE_ID,
                EMP_NAME,
                SALARY
           FROM HR.EMP

서브쿼리

(SELECT AVG(SALARY)   
   FROM HR.EMP)

결합

         SELECT EMPLOYEE_ID,
                EMP_NAME,
                SALARY
           FROM HR.EMP
          WHERE SALARY >= (SELECT AVG(SALARY)   
   		   FROM HR.EMP)

: HR계정의 EMP테이블의 평균임금보다 큰 임금을 조회합니다.


1. FROM 절

메인쿼리

          SELECT A.EMPLOYEE_ID,
                 A.EMP_NAME,
                 A.SALARY
           FROM HR.EMP A

서브쿼리

(SELECT AVG(SALARY) AS A1 
   FROM HR.EMP)

결합

          SELECT A.EMPLOYEE_ID,
                 A.EMP_NAME,
                 A.SALARY
           FROM HR.EMP A, (SELECT AVG(SALARY) AS A1 
   			     FROM HR.EMP) B
          WHERE A.SALARY >= B.A1;

: B의 조회결과에서의 임금보다 큰 A테이블의 결과를 조회합니다.

0개의 댓글