2008. 8. 29. 16:02

Chap 14. 뷰

뷰(view)는 물리적인 테이블에 근거한 논리적인 가상테이블이다.
실질적으로 데이터를 저장하고 있지 않지만 실제 테이블을 사용하는 것과 동일하게 뷰를 사용하여 테이블을 관리할 수 있다.
뷰는 반복적으로 쿼리를 날리는 것을 방지하기 위해서 사용된다.

뷰의 기본형식
create view view_name
as
select_statement

=========== 30번 부서에 소속된 사원들의 사번 및 이름 출력==================
create view emp_view30
as
select empno, ename, deptno
from emp_cp01
where deptno=30;

desc emp_view30; // 뷰의 구조 보기
select * from emp_view30; // emp_view30 내용 보기
======================================================================
================= insert 문으로 뷰에 행을 추가하기 =========================
insert into emp_view30
values(1111, 'AAAA',30);
select * from emp_view30; // view에 데이터가 추가된 것을 확인할 수 있다.
select * from emp_cp01; // emp_cp01에 데이터가 추가된 것을 확인할 수 있다.
=====================================================================

뷰의 종류
단순 뷰 : 하나의 테이블에 의해 정의한 뷰
새로 생성되는 뷰에 대해 컬럼명을 제시하지 않으면 기본테이블의 컬럼명을 상속 받는다.
================= insert 문으로 뷰에 행을 추가하기 ====================
create view dept_sum
as
select deptno, sum(sal) sum_sal
// 함수를 사용할 경우 반드시 별칭을 반드시 지정해야 한다.
from emp_cp01
group by deptno;
==================================================================

복합 뷰 : 두 개 이상의 기본 테이블에 의해 정의한 뷰
================= 사번과 이름 부서명을 복합뷰로 검색 =================
create view emp_view_join
as
select e.empno, e.ename, d.dname
from emp e, dept d
where e.deptno=d.deptno;
select * from emp_view_join;
=====================================================================

뷰의 제거
drop view view_name
뷰의 변경
create or replace view view_name
select_statement