뷰(View)는 한마디로 물리적인 테이블을 근거한 논리적인 가상 테이블이라고 정의할 수 있습니다.
디스크 저장 공간이 할당되지 않습니다.
사용 방법은 테이블에서 파생된 객체 테이블과 유사합니다.
뷰는 뷰를 정의하기 위해서 사용되는 기본 테이블의 수에 따라 단순 뷰(Simple View)와 복합 뷰(Complex View)로 나뉩니다.
단순 뷰(simple view)는 하나의 기본 테이블로 생성한 뷰이며 DML 명령문을 실행할 수 있습니다. DML 명령문의 처리 결과는 기본 테이블에 반영됩니다.
복합 뷰(complex view)는 두개 이상의 기본 테이블로 생성한 뷰입니다.
뷰를 사용하는 이유는 보안과 사용의 편의성 때문
보안을 위해 뷰 활용하기
뷰는 데이터를 저장하고 있지 않은 가상 테이블이므로 실체가 없습니다. 뷰가 테이블처럼 사용될 수 있는 이유는 뷰를 정의할 때 CREATE VIEW 명령어 다음의 AS 절에 기술한 쿼리 문장 자체를 저장하고 있다가 이를 실행하기 때문입니다.
뷰에 대해서 질의를 하면 오라클 서버를 USER_VIEWS에서 뷰를 찾아 이를 정의할 때 기술한 서브 쿼리문을 뷰 위치로 가져갑니다.
뷰는 실체가 없는 가상 테이블이기 때문에 뷰를 삭제한다는 것은 USER_VIEWS 데이터 딕셔너리에 저장되어 있는 뷰의 정의를 삭제하는 것을 의미합니다.
따라서 뷰를 삭제해도 뷰를 정의한 기본 테이블의 구조나 데이터에는 전혀 영향을 주지 않습니다.
CREATE OR RELPACE VIEW
FORCE
WITH CHECK OPTION
WITH READ ONLY
WITH READ ONLY를 사용하면 해당 뷰를 통해서는 SELECT만 가능하며 INSERT/UPDATE/DELETE를 할 수 없게 됩니다.
만약 이것을 생략한다면, 뷰를 사용하여 추가, 수정, 삭제(INSERT/UPDATE/DELETE)가 모두 가능합니다.