VIEW - 물리적 TABLE을 근거로 한 논리적 가상테이블
<특징>
-물리적인 저장공간 X
-테이블을 기초로한 가상테이블
-하나 이상의 테이블로 생성
-테이블에 선택된 컬럼 정보만 참조 (보안강화)
-복잡한 조인문을 간단하게 실행
-튜닝된 SQL문을 사용하여 성능향상
-유지보수 편리
-ACCESS의 단순화
VIEW의 종류
SIMPLE 뷰
SQL> CREATE OR REPLACE VIEW EMP1
AS SELECT * FROM EMP WHERE DEPTNO = 10;
COMPLEX 뷰
SQL> CREATE VIEW EMP1
AS SELECT E.EMPNO, E.ENAME, E.DEPTNO, D.DNAME
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO;
SIMPLE 뷰
-하나의 테이블로 생성, 그룹함수 사용 불가능 , DISTINCT의 사용 불가능 ,DML 실행 가능
COMPLEX 뷰
-여러개의 테이블로 생성, 그룹함수 사용 가능,DISTINCT의 사용 가능, DML 실행불가능
VIEW 생성
SQL> CREATE VIEW EMPVW30
2 AS
3 SELECT EMPNO, ENAME, SAL, DEPTNO
4 FROM EMP
5 WHERE DEPTNO=30;
SQL> DESC USER_VIEWS
SQL> SELECT VIEW_NAME,TEXT FROM USER_VIEWS;
CREATE OR REPLACE - 뷰의 내용을 변경
SQL> CREATE OR REPLACE VIEW EMPVW30
2 AS
3 SELECT EMPNO, ENAME, COMM, DEPTNO
4 FROM EMP
5 WHERE DEPTNO = 10;
VIEW 삭제
SQL> DROP VIEW EMPVW30;
TOP-N QUERY
"가장 최근에 입사한 5명의 사원"등 최소값, 최대값을 가진 컬럼 몇개의 행만 추출할때 효과적
봉급을 가장 많이 받는 사람 3명 (사번,이름,봉급)
SQL> CREATE VIEW E1
2 AS SELECT EMPNO, ENAME, SAL FROM EMP ORDER BY SAL DESC;
뷰가 생성되었습니다.
SQL> SELECT ROWNUM,EMPNO,ENAME,SAL FROM E1;
SQL> SELECT ROWNUM,EMPNO,ENAME,SAL FROM E1 WHERE ROWNUM <= 3;
SQL> SELECT ROWNUM, EMPNO, ENAME, SAL
2 FROM (SELECT EMPNO, ENAME, SAL FROM EMP ORDER BY SAL DESC)
3 WHERE ROWNUM <= 3;
ROWNUM EMPNO ENAME SAL
---------- ---------- ---------- ----------
1 7839 KING 5000
2 7788 SCOTT 3000
3 7902 FORD 3000
* ROWID, ROWNUM 은 pseudo column(거짓 컬럼) 으로 생성될때마다 번호를 추출한다
'Programing > Oracle' 카테고리의 다른 글
Oracle - SEQUENCE , SYNONYM (0) | 2008.07.29 |
---|---|
Oracle - INDEX (0) | 2008.07.29 |
Oracle - CONSTRAINTS (0) | 2008.07.29 |
Oracle - DDL(DATA DEFINITION LANGUAGE) (0) | 2008.07.29 |
Oracle - DATA DICTIONARY (관리용 테이블) (0) | 2008.07.29 |