본문 바로가기
  • Let's study
데이터베이스/Oracle

[Oracle] View

by 코딩고수이고파 2022. 4. 25.

View

  • 하나 이상의 테이블로부터 유도된 이름을 가진 가상 테이블
CREATE [OR REPLACE] VIEW view_name
[column1, column2, ...]
AS
Select statement

**만약 VIEW 테이블이 생성이 안된다면 생성 권한을 추가해준다.

EX) 1. 직업이 'CLERK'인 직원의 정보를 저장하는 view 생성하기

2. 직업의 종류와 종류별 개수를 알고 싶다면

 

VIEW의 구조 및 이름 확인

USER_VIEWS 데이터 사전 테이블

 

OR REPLACE

  • view 수정 가능

EX) 위에서 만들었던 CEMP VIEW 수정

 

VIEW의 데이터 변경

  • 뷰가 하나의 테이블을 사용하고, 권한이 있다면 INSERT, UPDATE, DELETE문을 사용하여 참조하는 테이블의 데이터 변경 가능

WITH CEHCK OPTION

  • 뷰를 통해 수행되는 INSERT와 UPDATE는 WITH CHECK OPTION 절에 있으면 삽입되거나 갱신되는 데이터에 대해 무결성 제약조건과 데이터 검증 체크를 한다.

WITH READ ONLY

  • 뷰에서 삽입, 갱신, 삭제가 불가능

EX) WITH CHECK OPTION

직원번호가 7369인 직원의 월급을 900으로 바꿔보자.

이번엔 월급이 900이상인 직원의 정보를 저장한 CEMP_SAL VIEW를 만들어보자.

CEMP_SAL에서 직원번호가 7369인 직원의 월급을 800으로 바꾸려고 하면 CEMP_SAL 뷰의 조건이 월급이 900이상이어야 하기 때문에 에러가 발생한다.

 

WITH READ ONLY

MEMP 뷰에서 직원번호가 7566인 직원의 데이터를 삭제하려고 하면 에러가 뜬다.

 

VIEW 삭제

DROP VIEW view_name;

'데이터베이스 > Oracle' 카테고리의 다른 글

[Oracle] PL/SQL  (0) 2022.04.26
[Oracle] 변환 함수  (0) 2022.04.24
[Oracle] 날짜 처리 함수  (0) 2022.04.23
[Oracle] 숫자 처리 함수  (0) 2022.04.22
[Oracle] 문자 처리 함수  (0) 2022.04.21

댓글