반응형
뷰 (VIEW)
- 논리적인 가상 테이블
- 뷰 안에는 실제 데이터가 없고, 쿼리만 실행해 준다.
- 쿼리문을 숨기기 때문에 약간의 보안 효과를 가질 수 있다.
- 권한이 없는 사람은 뷰를 생성할 수 없다.
뷰의 생성과 삭제
- CREATE
- DROP
뷰의 종류
- 단순 뷰
- 복합 뷰
CREATE
- CREATE [OR REPLACE]: 뷰를 생성함 [만일 해당 이름의 뷰가 있으면 덮어씀]
- WITH 제약 조건으로 데이터 제한 가능 - 조건에 맞는 데이터만 입력 & 수정 가능 / 읽기만 가능
- 뷰를 생성할 수 있는 권한을 받아야만 함
- USER_VIEWS 딕셔너리안에 생성된다.
DROP
- 뷰를 삭제하는 명령어
- USER_VIEWS 딕셔너리 안에 있는 뷰를 삭제하는 것이기 때문에,
- 실제 물리적 테이블의 데이터에는 영향을 주지 않는다.
VIEW의 종류
단순 뷰
- 하나의 테이블로 생성된다
- DML을 사용할 수 있다.
- 위에서 만든 emp_view30 뷰가 단순 뷰이다.
복합 뷰
- JOIN을 통한 뷰의 생성
- 두 개 이상의 기본 테이블을 통해 생성된 뷰이다.
WITH 제약 조건
- WITH CHECK OPTION
- WITH READ ONLY
WITH CHECK OPTION
- 뷰를 생성할 때 지정한 부분을 수정할 수 없도록 함
- 일관적인 결과를 보여 줄 수 있다는 장점이 있다.
WITH READ ONLY
- 기본 테이블의 모든 컬럼 값을 수정할 수 없도록 함
Top-N
- ROWNUM을 사용해 상위 N 명의 값을 추출
- 행이 생성된 순서대로 컬럼 번호가 지정되기 때문에,
- 일반 테이블에서 WHERE 조건에 ORDER BY를 걸면 해당 순서가 섞여 나온다.
- VIEW나 서브 쿼리를 사용해 해당 문제를 해결할 수 있다. (여기서는 VIEW만)
반응형
'자린고비 독학하기 > 자린고비 코딩하기' 카테고리의 다른 글
SQL - 시퀀스 (SEQUENCE) (1) | 2019.08.05 |
---|---|
SQL - INDEX (1) | 2019.08.05 |
SQL - 트랜잭션 (0) | 2019.08.02 |
SQL - DML (0) | 2019.08.01 |
SQL - DATA DICTIONARY VIEW (0) | 2019.08.01 |