[SQL] VIEW ORACLE/SQL 2012. 3. 29. 17:40

뷰는 하나의 가상 테이블이다. 실제 데이터가 저장되는 것이 아니라 이를 통하여 데이터를 관리하면서 간단한 쿼리 작성만으로 원하는 결과를 얻을 수가 있다.

다음은 뷰의 제약 조건이다.

1. 테이블 상 NOT NULL로 만든 컬럼들이 뷰에 포함되어야한다.

2. ROWID, ROWNUM, NEXTVAL, CURRVAL등 같은 가상에 대한 참조를 한다면 INSERT 작업이 불가능하다.

3. WITH READ ONLY 옵션을 설정한 뷰에도 데이터 갱신이란 없다.

4. WITH CHECK OPTION을 설정한 뷰의 경우 조건에 해당하는 경우만 INSERT, DELETE, UPDATE가 가능하다.

 

다음은 뷰 생성 예제이다.

CREATE OR REPLACE VIEW v_view AS

SELECT A.ID, B.NAME

FROM t_table A, t_table_sec B

WHERE A.ID = B.ID

 

WITH READ ONLY를 살펴보면 SELECT만 가능한 뷰를 생성한다.

CREATE OR REPLACE VIEW v_view AS

SELECT ID, NAME

FROM t_table

WHERE VALUE = 10

WITH READ ONLY

 

하지만 여기에서 WITH CHECK ONLY를 적용을 한다면 VALUE = 10에 의한 조건에 의해 INSERT, DELETE, UPDATE가 가능하다.

VIEW에 대한 정보는 USER_VIEW를 조회하면 확인이 가능하다.