데이터를 저장하고 있지 않으며 테이블에 대한 SQL만 저장되어 있어 VIEW 접근할 때 SQL을 수행하면서 결과값을 가져온다.
[표현법]
CREATE [OR REPLACE] VIEW 뷰명
AS 서브 쿼리;
*사용자가 생성한 VIEW를 볼 수 있는 테이블
- 컬럼으로 VIEW의 이름, 생성한 VIEW의 SQL 길이, 실제 SQL 등이 들어있다.
<뷰 컬럼에 별칭 부여>
서브 쿼리의 SELECT 절에 함수나 산술연산이 기술되어 있는 경우 반드시 별칭을 지정해야 한다.
<VIEW를 이용해서 DML(INSERT, UPDATE, DELETE) 사용>
뷰를 통해 데이터를 변경하게 되면 실제 데이터가 담겨있는 기본 테이블에도 적용된다.
V_JOB VIEW
JOB 테이블
V_JOB, JOB 동일하게 UPDATE 적용
V_JOB, JOB 동일하게 DELETE 적용
<DML 구문으로 VIEW 조작이 불가능한 경우>
V_JOB VIEW
JOB 테이블
<VIEW 옵션>
[표현법
CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW
AS 서브 쿼리
[WITH CHECK OPTION]
[WITH READ ONLY];
- OR REPLACE : 기존에 동일한 뷰가 있을 경우 덮어쓰고, 존재하지 않으면 뷰를 새로 생성한다.
- FORCE : 서브 쿼리에 기술된 테이블이 존재하지 않는 테이블이어도 뷰가 생성된다.
- NOFORCE : 서브 쿼리에 기술된 테이블이 존재해야만 뷰가 생성된다.(기본값)
- WITH CHECK OPTION : 서브 쿼리에 기술된 조건에 부합하지 않는 값으로 수정하는 경우 오류를 발생시킨다.
- WITH READ ONLY : 뷰에 대해 조회만 가능(DML - INSER, UPDATE, DELETE 수행 불가)