SQL 가상테이블을 만드는 With문

1662 단어 sqlsql

최근에 한 스타트업에 취업을 하게 되면서 sql과 씨름을 하는 한 주를 보낸거 같아요... 나름 한다고 준비하고 갔으면서도 현실 DB를 추출하기 위한 쿼리문에는 많은 장벽들이 있더라구요.

그 중에서도 유용하게 사용할 수 있는것으로 with문을 소개해 보고자 합니다.

with 문을 사용하는 이유

쿼리를 만들다 보면 중복되는 쿼리가 반복되는 경우가 있습니다. 이때 성능을 높이기 위해서 사용되고 table을 만들지 않고도 만든것과 같은 효과를 내는데 실제로 temp라는 임시 테이블에 저장이 된다.

with 문 사용 방법

with 가상테이블명 as(
    select 쿼리
    from 테이블
    union -- 예시
    select 쿼리
    from 테이블
)

위와 같은 형태로 만들 수 있는데 위의 as 뒤 괄호 안에 있는 것은 임시로 만든것이다. 즉, with 가상테이블명 as()로 만들 수 있고 이것을 불러올때는 아래와 같은 방식이다.

with 가상테이블명 as(
    select 쿼리
    from 테이블
    union -- 예시
    select 쿼리
    from 테이블
) select * from 가상테이블명

이런식으로 하면 가상테이블의 모든 항목을 불러오게 된다.

서브쿼리를 사용할게 너무 많거나, 혹은 같은 쿼리를 중복해서 활용할때 저런식으로 임시테이블을 만들어서 활용할 수 있다.

좋은 웹페이지 즐겨찾기