Data Base_Oracle/SQL

SQL_VIEW 개요 & USER_VIEWS

pathas 2020. 1. 8. 23:40

VIEW 개요

  • 실제 존재하는 테이블이 아닌 가상 테이블
  • 실제 테이블에 저장된 데이터로 결과를 출력할 수 있음
  • 저장공간이 따로 필요 없음
    텍스트로 저장

VIEW 사용 목적

  1. 편리성 추구
    복잡한 SQL구문을 쉽게 실행할 수 있음
    ex) 자주 사용하는 테이블을 뷰로 만들어두면 편리하게 사용 가능,
    SQL Plus의 save 대신 사용하기도 함
  2. 보안 추구
    직접적인 테이블 접근을 제한함
    ex) 급여, 보너스 등의 민감한 데이터를 제외한 자료들만 보여줄 때 사용

VIEW 종류

단순 VIEW

DML 사용 목적

  • 하나의 테이블로 만들어진 뷰
  • DML(insert, update, delete) 사용 가능
  • 그룹함수 사용 불가
    → 별칭을 지정하면 사용 가능
  • DISTINCT 사용 불가

※ 단순 VIEW는 DML 사용 목적이기 때문에
select구문에서 자주 사용 되는 distinct, group by는 사용 불가

복합 VIEW

JOIN을 사용하기 때문에 DQL_SELECT 사용 목적

  • 복수의 테이블로 만들어진 뷰
  • DML 사용 불가
    ※ 테이블이 하나가 아니기 때문에 입력 테이블 확정 불가
    JOIN, SELECT 사용 목적이기 때문에 DML 사용 불가
  • 그룹함수 사용 가능
  • DISTINCT 사용 가능

VIEW _ Data Dictionary

user_views

뷰에 대한 정보가 담겨 있는 Oracle 자체 테이블

user_views 구조

▶ [ SQL> desc user_views ]

이름 널? 유형
VIEW_NAME
뷰 이름
NOT NULL VARCHAR2(30)
TEXT_LENGTH
뷰의 문자열 길이
  NUMBER
TEXT
뷰의 내용
  LONG
... ... ...
READ_ONLY
읽기 전용 확인
  VARCHAR2(1)

▶ [ SQL> select view_name, text_length, text, read_only from user_views; ]

VIEW_NAME TEXT_LENGTH TEXT R
V_EMP20 52 select empno, ename, job
from b_emp3 where deptno=20
N

VIEW의 개요와 데이터 딕셔너리를 통한 VIEW 정보 확인 방법에 대해 알아보았습니다.
뷰의 특징을 정확히 이해한다면 앞으로의 내용도 쉽게 이해할 수 있을 것입니다.