View란
- 테이블이나 다른 View를 기반으로한 논리적인 테이블
- View자체는 데이터를 포함하지 않음
- Create View 권한이 있어야만 생성가능
Simple View
- 한테이블 데이터만 포함
- 그룹함수를 포하하지 않음
- View를 통한 DML 수행 가능
Complex View
- 둘 이상의 테이블 데이터 포함
- 그룹함수, DISTINCT,GROUP BY절 등이 포함되어 있을 경우
- View를 통한 DML 수행 불가능
생성 Syntax
CREATE [OR REPLACE] [FORCE|NOFORCE]
[(alias[.alias...])
VIEW view_name AS subquery
[WITH CHECK OPTION] [WITH READ ONLY]
Alias : 컬럼명
[OR REPLACE] : 기존에 존재하면 재생성함(SQL Server제외)
[FORCE|NOFORCE] : Base Table 존재여부와 상관없이 생성
[WITH CHECK OPTION] : View에 의해 엑세스 될 수 있는 행만이 입력,갱신됨
[WITH READ ONLY] : 이 View에서 DML이 수행가능한지 여부(Oracle Only)
뷰의 정의 확인
- 오라클 : "DESC USER_VIEW" 후 "SELECT VIEW_NAME, TEXT FROM USER_VIEWS"
- MySQL : "SHOW CREATE VIEW 뷰이름"
- SQLServer : "SP_HELPTEXT 뷰이름"
뷰의 수정
- "OR_REPLACE" 옵션을 사용
- SQLServer은 "ALTER VIEW"를 사용함
WITH CHECK OPTION
- 데이터를 뷰 생성 조건에 위배되는 데이터를 만들지 못함
즉, 뷰의 생성조건이 AGE>20 인데 AGE가 20이하인 레코드는 삽입 변경이 불가능하다
뷰의 삭제
- DROP VIEW 뷰이름
댓글 없음:
댓글 쓰기