1. 단순 뷰 생성
CREATE [OR REPLACE] [ FORCE | NOFORCE] VIEW view
   [ (alias, alias,;;;)]
   AS subquery;

   * OR REPLACE : 기존 뷰와 동일한 이름으로 뷰를 재생성하는 경우
   * FORCE : 기본 테이블의 존재 여부에 상관없이 뷰 생성
   * NOFORCE : 기본 테이블이 존재할 경우에만 뷰 생성, 기본 값
   * ALIAS : 기본 테이블의 칼럼 이름과 다르게 지정한 뷰의 칼럼 이름

ex)CREATE VIEW v_stud_dept101(학번, 이름, 학과번호)
   AS SELECT studno, name, deptno
     FROM   student
     WHERE  deptno = 101;

2. 복합 뷰 생성
CREATE VIEW v_stud_dept102(학번, 이름, 학년, 학과이름)
AS SELECT s.studno, s.name, s.grade, d.dname
     FROM   stduent s, department d
     WHERE   s.deptno=d.deptno
     AND   s.deptno=102;

3. 함수를 이용한 뷰 생성
CREATE VIEW v_prof_avg_sal
AS SELECT deptno, SUM(sal) sum_sal, AVG(sal) avg_sal
     FROM professor
     GROUP BY deptno;

4. 인라인 뷰 (inline view) : FROM 절에 서브쿼리 사용하여 생성한 임시 뷰를 의미
SELECT dname, avg_height, avg_weight
FROM  ( SELECT deptno, avg(height) avg_height,
             avg(weight) avg_weight
FROM student
GROUP BY deptno) s, department d
WHERE s.deptno = d.deptno;

5. 뷰의 삭제
DROP VIEW view;

ex) DROP VIEW v_stud_dept101;  

6. 뷰와 관련된 데이터 딕셔너리
: USER_VIEWS - 사용자가 생성한 모든 뷰를 볼 수 있다.

* view는 index를 만들 수 없다.

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

데이터 무결성 제약조건  (1) 2009.12.30
인덱스(Index)  (1) 2009.12.30
Admin Workshop 1 - 구조 10g  (0) 2009.12.30
Query 실행 과정 10g  (1) 2009.12.30
10g RAC의 Load Balancing과 Failover  (1) 2009.12.30

+ Recent posts