반응형
목차
view는 가상의 테이블을 의미, view는 데이터는 없고 원본 테이블에 가서 데이터를 불러오는 SQL query만 저장되어 있음
사용자가 해당 view를 사용하는 SQL를 실행할 때만 view에 들어 있는 쿼리가 실행됨
-- 간단한 view 생성
CREATE OR REPLACE VIEW v_emp1
AS SELECT empno, ename, hiredate
FROM emp;
-- view 조회 시 아래처럼 결과가 표시됨(emp테이블에서 데이터를 조회해 )
SELECT * FROM v_emp1;
view를 생성하면 오라클은 해당 view 정보를 딕셔너리에 저장한 다음 사용자가 view를 사용할 때만 view의 서브쿼리가 실행되어 원본 테이블에서 데이터를 가져옴
※ 이 의미는 평소에 이 view에는 데이터가 없다는 뜻이기도 함
view에는 제약조건이나 인덱스 등을 생성할 수가 없음
-- emp table과 dept 테이블을 조회하여 사원이름과 부서 이름을 출력하는 view생성(부서번호로 조인)
CREATE OR REPLACE VIEW v_emp
AS
SELECT e.ENAME, d.DNAME
FROM emp e, dept d
WHERE e.DEPTNO = d.DEPTNO
;
매번 위와 같은 복잡한 서브쿼리를 생성해서 조회하기가 귀찮고 힘들 때 view를 생성 해 놓고 간단하게 조회할 수 있다는 것이 view의 큰 편리함임
그러나 view를 잘못 사용할 경우 성능 저하의 주 원인이 되는 경우도 많음
view안에는 가급적 INTERSECT, MINUS, UNION 같은 집합 연산자는 사용하지 않는 것이 성능 향상에 도움이 된다는 점도 기억할 것
출처 : 오라클 SQL과 PL/SQL 책
반응형
'IT > DBMS' 카테고리의 다른 글
[Oracle]ORACLE SUB QUERY (0) | 2022.11.25 |
---|---|
[Oracle]오라클 SELECT 1 FROM '테이블명' (0) | 2022.11.25 |
[Oracle]오라클 CTAS(Create Table As SELECT) (0) | 2022.11.25 |
[Oracle]GROUP BY + ROLL UP이용한 소계 구하기 (0) | 2022.11.25 |
[Oracle] 테이블/테이블 목록 조회 (0) | 2022.11.25 |