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
'Database > SQL' 카테고리의 다른 글
[SQL] 함수 (0) | 2021.12.06 |
---|---|
[SQL] 저장 프로시저(SP) (0) | 2021.12.05 |
[SQL] DML/SELECT (Advanced) (0) | 2021.10.15 |
[SQL] DML/INSERT, UPDATE, DELETE (0) | 2021.10.11 |
[SQL] DML/SELECT (Basic) (0) | 2021.10.11 |