새싹 DBA/Oracle

[오라클] WITH / VIEW 개념과 차이

LIMMI 2024. 7. 22. 13:25

오라클 VIEW, WITH 개념

WITH절은 오라클9 이후 버전부터 사용이 가능하며 이름이 부여된 서브쿼리라고 생각하면 됨. 

 

임시테이블을 만든다는 관점에서 본다면 VIEW와 쓰임새가 비슷하고, 헷갈려서 정리하는 글. 

 

플러그인 -  view 개념과 사용법

플러그인 - with 개념과 사용법

WITH/ VIEW 공통점
  • 데이터를 물리적으로 저장하지 않고 임시로 만드는 순수한 논리구조라는 점에서 동일.
  • 반복적으로 사용되는 쿼리를 정의함으로 간결하고 직관적인 쿼리 작성 가능
WITH / VIEW 차이
  • WITH 절 :
    • WITH절 내에서 정의된 컬럼명과 테이블은 쿼리 세션이 종료되면 유지되지 않는다 
      즉 한번 실행할 쿼리문 내에 정의되어 있을 경우 그 쿼리 안에서만 실행.
    • 존재하는 테이블/뷰의 이름과 중복되더라도 충돌이 발생하지 않음
  • VIEW :
    • 한번 생성된 VIEW는 DROP 때까지 없어지지 않음.
    • VIEW 를 조회하여 새로운 테이블에 데이터 삽입 불가. 

 

WITH절과 VIEW의 사용은 단순히 

1) 쿼리 내 중복 사용을 줄이기 위함

2) 쿼리를 읽고 이해하기 쉽게 만드는 것

 

쿼리 작성 시 WITH절/VIEW를 사용함으로써 효율적인 쿼리 플랜을 만들 수 있다고 생각해선 안된다.