IT/DBMS

[Oracle]view(뷰)

알 수 없는 사용자 2022. 11. 25. 22:12
반응형

목차

    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에는 데이터가 없다는 뜻이기도 함
    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 책

    반응형