justgo_developer

View(뷰) 본문

IT/Oracle

View(뷰)

다날92 2018. 11. 22. 21:46
728x90
반응형

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 사원;

: 알기 쉽게 볼수있도록 뷰 사용, 한국어 사용(사용자 편의성)


728x90
반응형

'IT > Oracle' 카테고리의 다른 글

rowType 변수 및 복합변수 활용  (0) 2018.12.01
PL/SQL  (0) 2018.11.30
시퀀스(Sequence)  (0) 2018.11.22
PL/SQL  (0) 2018.11.18
계층형쿼리  (0) 2018.11.18