본문 바로가기
Data/Oracle

[Oracle] View(뷰)

by prinha 2020. 11. 23.
반응형

 

뷰(View)란?

하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게하는 데이터베이스 객체이다.

실제 데이터는 뷰를 구성하는 테이블에 담겨 있지만 마치 테이블처럼 사용할 수 있다.

테이블 뿐만 아니라 다른 뷰를 참조해 새로운 뷰를 생성하여 사용할 수 있다.

데이터를 본다는 의미가 있어 뷰의 정의는 데이터를 조회하는 SELECT문으로 구성된다.

-- 뷰의 생성

CREATE OR REPLACE VIEW [스키마.]뷰명 AS
SELECT 문장;

 

-- 뷰생성 / 뷰조회

CREATE OR REPLACE VIEW emp_dept_v1 AS
SELECT a.employee_id, a.emp_name, a.department_id,
       b.department_name
FROM employees a,
       departments b
WHERE a.department_id = b.department_id;

SELECT * FROM emp_dept_v1;

 

뷰는 다른 테이블을 참조하고 있으므로 뷰를 삭제하더라도 실제 데이터는 삭제되지 않는다.

-- 뷰삭제

DROP VIEW [스키마.]뷰명;

 

뷰의 또 다른 특징 중 하나는 뷰를 통해 원천 테이블에 있는 데이터를 조작하는 것이 가능하다는 점이다.

이런 뷰를 Updatable 뷰라고 하는데, Updatable 뷰는 사용법도 복잡하고 혼란스러울 뿐만 아니라

뷰의 원래 목적인 보안 측면에서도 바람직하지 않다고 판단하기 때문이다.

읽기 전용 뷰와 데이터 수정 가능한 뷰가 존재한다는 점만 기억하자.

 

 

 

 

 

반응형