더북(TheBook)

이번에는 부서별 사원의 총 급여와 평균을 구했던 코드 11-4를 사용해 dept_sal_v 뷰를 생성합니다. 코드 11-4는 CTE를 사용하고 여러 테이블이 조인된 복잡한 쿼리지만, 이렇게 뷰로 만들어 놓으면 데이터를 조회하는 입장에서는 간단히 SELECT 문의 FROM 절에 dept_sal_v만 명시해 원하는 정보를 조회할 수 있습니다.

그런데 dept_sal_v의 생성 쿼리에서 CTE인 tmp의 서브쿼리를 보면 dept_emp_v란 뷰를 사용하고 있습니다. 이처럼 일반 테이블뿐만 아니라 또 다른 뷰를 참조해 뷰를 생성할 수도 있습니다. 뷰도 테이블처럼 FROM 절에 기술해 동일한 방식으로 사용할 수 있기 때문이죠. 또한, dept_emp_v 뷰에는 이미 현재 기준의 부서 사원 할당 정보를 확인하는 로직이 포함되어 있어서 dept_sal_v 뷰를 생성할 때는 이 로직이 필요 없습니다. 코드 11-4에서는 SYSDATE() BETWEEN b.from_date AND b.to_date 조건이 필요했지만, 여기에서는 필요 없습니다.

이처럼 뷰를 만들어 사용하면 복잡한 쿼리를 일일이 다시 작성할 필요가 없습니다. 예를 들어 여러분이 아주 복잡한 100줄짜리 쿼리를 작성했는데, 실수로 이 쿼리를 저장해 놓은 파일을 삭제했거나 찾지 못한다면 다시 쿼리를 작성해야 합니다. 하지만 이렇게 뷰로 만들어 놓으면 언제든지 필요할 때마다 사용할 수 있습니다. 또한, 여러분뿐만 아니라 동료들도 필요할 때마다 사용할 수 있다는 장점이 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.