Database/SQL
[SQL] View
gangintheremark
2021. 10. 17. 03:31
728x90
View 란?
- 다른 테이블로 유도된 가상의 테이블
- 기본 테이블은 데이터가 실제 데이터베이스에 저장되지만 뷰의 경우 정의만 저장
- 뷰를 기반으로 새로운 뷰를 정의할 수 있음
create view <뷰 이름> [컬럼 이름 리스트]
as select 문
[with check option]; -- where 절이 만족되는지 체크 (생략가능)
- select 문은
union
또는order by
를 포함할 수 없음 - 컬럼명을 지정하지 않으면 select 결과의 컬럼명과 동일
View 의 확인
all_catalog
: 테이블, 뷰, 시퀀스 확인all_view
: 뷰의 정의 확인
View 의 삭제
drop view <뷰 이름> [restric|cascade]
restric
: 가 다른 곳에 사용되지 않을 때만 삭제cascade
: 해당 뷰를 사용하여 유도된 뷰들도 같이 삭제
-- STUDENT 테이블에서 '컴퓨터'과에 속한 학생들만으로 구성된 뷰 CSTUDENT를 정의하라
create view CSTUDENT
as select *
from STUDENT
where dept = '컴퓨터';
View 의 특징
- 뷰는 일반적으로 변경(삽입, 삭제, 갱신)이 불가능하지면 제한적으로 변경 가능한 뷰도 있음
- 뷰에
INSERT
하려면 키가 포함되어 있어야 함 - 뷰에
UPDATE
또는DELETE
하려면 기반테이블에서 갱신 또는 삭제 대상이 되는 행을 식별할 수 있어야 함- 서로 다른 테이블들을 조인한 결과물을 뷰로 정의한 경우 갱신이 불가능할 수 있음
728x90