view란 다른 테이블을 이용해 만들어진 가상의 테이블이다. 사용자는 view를 이용해 실제 테이블을 들여다볼 수 있게 된다.
view는 베이스테이블을 참조해서 만들어지기 때문에 생성된 view에서 삭제 연산을 수행하면 실제 테이블에서도 데이터가 삭제된다. 그래서 view를 사용해서 데이터를 삽입이나 삭제연산들을 수행하는 것은 권장되는 방법이 아니라고 한다. 또한 view를 통해 새로운 view를 만들 수 도 있다.
view를 만드는 이유
- 보안성 : 사용자에게 보여주고 싶지 않은 데이터는 감춤으로써 보안성을 향상한다.
- select문의 간결화 : 미리 조인을 시킨 테이블을 view로 만들어 쿼리를 간소화시킬 수 있다.
- 논리적 데이터 독립을 제공한다.
view의 단점
- 독립적인 인덱스를 가질 수 없다.
- alter view명령어를 사용 불가능하다. view를 변경하려문 기존의 view를 삭제하고 새로 만들어야 한다.
- view로 구성된 내용에 대한 삭제, 삽입, 갱신에 제약이 생긴다.
※ 뷰를 생성할 때 with check option 키워드를 사용 가능 하다. 이 키워드는 생성된 view에 삭제, 삽입, 수정 연산을 할 때 view의 where 조건에 위반되면 삭제, 삽입, 수정 연산이 되지 않게 하는 제약조건이다.
뷰의 생성
CREATE VIEW [뷰의이름](컬럼1, 컬럼2...)
AS SELECT 컬럼1, 컬럼2 ...
FROM [베이스테이블이름]
WHERE [조건문]
WITH CHECK OPTION;
뷰의 삭제
// 해당 뷰를 다른 뷰가 참조하고 있으면 삭제가 되지 않는다.
DROP VIEW [뷰이름] RESTRICT;
// 해당 뷰를 다른 뷰가 참조하고 있으면 다른 뷰나 제약조건 까지 모두 삭제된다.
DROP VIEW [뷰이름] CASCADE;
Reference
'데이터베이스' 카테고리의 다른 글
[데이터베이스] DECODE(), CASE문 사용법 (0) | 2023.06.28 |
---|---|
[데이터베이스] 중복 제거, NOLOGGING (0) | 2023.06.26 |
DCL (0) | 2023.06.19 |
오라클 연산자 (IN, EXISTS, ALL...) (0) | 2023.06.01 |
DML (0) | 2023.05.31 |