View(뷰)
View(뷰)
- Table과 유사하며, Table처럼 사용
- Table과는 달리 데이터를 저장하기 위한 물리적인 공간이 필요하지 않은 가상테이블
- 데이터를 물리적으로 갖지 않지만, 논리적인 집합을 갖는다.
- select/insert/update/delete 명령 가능
<활용>
1. 보안관리를 위한 뷰
- 보안등급에 맞추어 컬럼 및 범위를 정하여 조회
- 연산결과만 제공하고 알고리즘을 숨기기 위해 사용
- select list를 함수로 가공하여 update, insert를 못하도록 함.
- 테이블명이나 컬럼명을 숨기도록 함
2. 사용편의성을 위한 뷰
- 검색조건을 단순화하여 사용
- 조인을 단순화
- 사용자를 위한 컬럼명이나 테이블명 제공
<뷰생성>
create view 뷰이름(필드명1, 필드명2, 필드명3, 필드명4, 필드명5) as
select 필드명1, 필드명2, 필드명3, 필드명4, 필드명5
from 테이블명
where 조건;
<뷰삭제>
drop view 뷰이름;
<뷰수정>
create or replace view 뷰이름(필드명1, 필드명2, 필드명3, 필드명4, 필드명5) as
select 필드명1, 필드명2, 필드명3, 필드명4, 필드명5
from 테이블명
where 조건;
update 뷰이름 set 필드명 = 값;
select * from 뷰이름;
example)
create view 뷰이름( emp_id, last_name, annual_sal) as
select employee_id, last_name, (salary+ nvl(commission_pct, 0)) * 12
from employees;
-> select * from v_emp_salary;
: 연산과정 숨기는 뷰 사용
create view 뷰이름
.
.
.
with read only;
: 해당 뷰 수정 불가
create view v_join( 사번, 이름, 부서번호, 부서명, 입사일) as
select ....
from employees emp, departments dept
where emp.department_id = dept.department_id;
-> select * from v_join
: 복잡한 join 조건 간단한 뷰 만들어놈
create view 사원(사번, 이름, 부서번호, 입사일) as
select employee_id, first_name, department_id, hire_date
from employees
where departmend_id = 50;
-> select * from 사원;
: 알기 쉽게 볼수있도록 뷰 사용, 한국어 사용(사용자 편의성)