개발자 입니다
2022. 10. 11. 20:01
평가영역
- 개요
- 뷰 정의
- 뷰에 관한 DML연산
개요
실제로 데이터베이스에 존재하지는 않으나 있는것 처럼 사용자에게 보여주는 테이블이다. 논리적으로만 존재하며 정의만을 저장해두었다가 사용 요청이 들어올 시 실행시간에 테이블을 생성해서 보여준다.
- 뷰가 참조하는 기본 테이블이 변경(삭제)되면 뷰도 변경(삭제)된다.
- 외부 스키마는 뷰와 기본테이블의 정의로 구성된다
- 검색은 가능하지만 삽입, 삭제, 갱신은 제약을 받는다.
- 정의된 뷰는 변경할 수없으며, 변경하려면 삭제 후 다시 생성해야한다.
- ALTER를 이용할 수 없으며, DROP을 이용해 제거한다.
- 독자적인 인덱스를 가질 수 없다.
뷰 정의
뷰의 생성
create view 뷰명(컬럼명1, 컬럼명2) as
select 컬럼명1, 컬럼명2
from dual
where 1=1
with check option;
- as 이후의 서브쿼리에서는 union이나 order by를 사용할 수없다.(join은 가능)
- with check option을 사용하면 뷰에 대한 갱신이나 삽입 연산이 실행될 때 뷰 정의조건을 위배하면 실행을 거절한다.
뷰의 삭제
drop view 뷰명
--index의 경우
drop index 인덱스명
뷰에 관한 DML연산
뷰 속성이 기본 릴레이션의 기본키나 후보키를 포함한다면 뷰의 갱신이 가능하다.
일반적으로 조인을 사용하여 정의한 뷰는 갱신할 수 없다.
그룹화와 집단 함수를 사용하여 정의한 뷰 들은 갱신할 수 없다.