OracleSQL 핵심정리8 - 가상 테이블(VIEW TABLE)
뷰의 개념과 생성
- 기본 테이블에서 파생된 객체로서, 기본 테이블에 대한 하나의 쿼리문
- 사용자에게 주어진 뷰를 통해서 기본 테이블을 제한적으로 사용
CREATE VIEW [스키마명] 뷰명 AS 셀렉트문
- 뷰 생성- 복잡하고 긴 쿼리문을 뷰로 정의하여 접근을 단순화하고 보안에 유리
뷰의 내부 구조와 USER_VIEWS 데이터 딕셔너리
- 사용자가 뷰에 대해서 질의를 하면 USER_VIEWS에서 뷰에 대한 정의를 조회
- 기본 테이블에 대한 뷰의 접근 권한을 살핀 후 질의를 통해 데이터를 검색하여 출력
- ex)
SELECT 뷰명, TEXT FROM USER_VIEWS;
- ex)
- 뷰에 DML(insert, update, delete) 로 조작하게 되면 테이블이 변경됨
뷰 제거
DROP VIEW 뷰명;
- 뷰 제거
뷰의 다양한 옵션
OR REPLACE VIEW
: 존재하지 않는 뷰이면 새로운 뷰를 생성하고 존재하는 뷰이면 그 내용을 변경- ex)
CREATE OR REPLACE VIEW 뷰명 AS 셀렉트문
;
- ex)
FORCE
: 기본 테이블 없이 뷰를 생성- ex)
CREATE OR REPLACE FORCE VIEW 뷰명 AS 셀렉트문;
- 경고와 함께 기본 테이블이 없는 뷰가 생성
- ex)
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.