Post

OracleSQL 핵심정리8 - 가상 테이블(VIEW TABLE)

뷰의 개념과 생성

  • 기본 테이블에서 파생된 객체로서, 기본 테이블에 대한 하나의 쿼리문
  • 사용자에게 주어진 를 통해서 기본 테이블을 제한적으로 사용
  • CREATE VIEW [스키마명] 뷰명 AS 셀렉트문 - 뷰 생성
  • 복잡하고 긴 쿼리문을 뷰로 정의하여 접근을 단순화하고 보안에 유리

뷰의 내부 구조와 USER_VIEWS 데이터 딕셔너리

  • 사용자가 뷰에 대해서 질의를 하면 USER_VIEWS에서 뷰에 대한 정의를 조회
  • 기본 테이블에 대한 뷰의 접근 권한을 살핀 후 질의를 통해 데이터를 검색하여 출력
    • ex) SELECT 뷰명, TEXT FROM USER_VIEWS;
  • 뷰에 DML(insert, update, delete) 로 조작하게 되면 테이블이 변경

뷰 제거

  • DROP VIEW 뷰명; - 뷰 제거

뷰의 다양한 옵션

  • OR REPLACE VIEW : 존재하지 않는 뷰이면 새로운 뷰를 생성하고 존재하는 뷰이면 그 내용을 변경
    • ex) CREATE OR REPLACE VIEW 뷰명 AS 셀렉트문;
  • FORCE : 기본 테이블 없이 뷰를 생성
    • ex) CREATE OR REPLACE FORCE VIEW 뷰명 AS 셀렉트문;
    • 경고와 함께 기본 테이블이 없는 뷰가 생성
  • WITH CHECK OPTION : WHERE절에 기술하여 조건에 제시된 컬럼 값이 뷰를 통해서 변경되지 못하도록 함
  • WITH READ ONLY : 뷰를 통해서 기본테이블의 어떤 컬럼에 대해서도 내용을 절대 변경할 수 없도록 함

인라인 뷰로 TOP-N

  • N순위까지의 데이터를 얻어올 때 ROWNUM을 사용
  • ROWNUM에는 지정한 조건에 따라 순위가 매겨지고 행순서가 바껴도 순위는 바뀌지 않음
  • ex) SELECT ROWNUM, 컬럼명 FROM 뷰명 WHERE ROWNUM<=N; - N보다 작은 순위의 조건값들을 불러옴
This post is licensed under CC BY 4.0 by the author.