Back-end/DataBase

[SQL] WITH 절이란?

cheersHena 2022. 2. 4. 15:15
반응형

WITH 절이란?

임시테이블 또는 가상 테이블의 개념.
반복되는 서브쿼리 블록을 하나의 WITH절 블록으로 만들어서 사용할 수 있다.
임시테이블을 만든다는 관점에서 VIEW와 비슷하지만 VIEW는 CREATE로 생성하여 DROP하기 전 까지 없어지지 않고 모든 테이블에서 사용하능 하지만 WITH절의 경우 한번 실행할 쿼리문 내 정의하여 해당 쿼리안에서만 실행된다.

WITH 절 사용법

--WITH절 생성 
WITH emp_with AS 
(
    SELECT deptno, SUM(sal) AS sal 
    FROM emp 
    GROUP BY deptno
)

--WITH절 사용 
SELECT a.deptno, b.name, c.sal
FROM emp_with a , dept b 
WHERE a.deptno = b.deptno 

위와같이 서브쿼리를 WITH절로 들어서 테이블처럼 사용할 수 있다.

WITH 이하에는 임의의 테이블명[emp_with]을 지정할 수 있고
AS 이하에 사용할 쿼리[SELECT~] 를 입력한다.

여러번 반복되는 서브쿼리를 WITH로 사용 시 쿼리성능을 높일 수 있다.

반응형