View는 물리적인 저장공간을 가지지 않는 논리적인 집합니다.
[뷰 생성방법]
CREATE VIEW [뷰 이름] (열1, 열2, 열3 ...)
AS SELECT 열1, 열2, 열3 ...
FROM [테이블 이름]
WHERE 속성 = ?
※ select 문은 사용에 제한이 없고, insert, update, delete는 제한적으로 가능(복합뷰 불가능)하다.
EX)
[VIEW 생성] CREAT VIEW V_TEST AS SELECT NAME, AGE FROM MEMBER WHERE AGE BETWEEN 10 AND 19 [VIEW 업데이트 명령] UPDATE V_TEST SET AGE = AGE + 5 WHERE NAME ='JUNSIK' [VIEW 실제 변환] UPDATE MEMBER SET AGE = AGE + 5 WHERE NAME = 'JUNSIK' AND AGE BETWEEN 10 AND 19
만들어진 뷰는 테이블로 생성되지는 않지만, 정보를 선택적으로 보여줄 수 있다. 즉, 데이터베이스에 접근을 제한할 수 있다.
복잡한 쿼리문, 조인 문장 대신 간략하고 단순한 문장으로 만들어 쉽게 접근 가능하게 한다.
EX1)
EX2)
※ 서브쿼리
- WHERE, AND 절 아래에 오며, 간접 조건을 주고 원하는 정보를 조회한다.
(동적 성능뷰, DynamicPerformanceView) DBA의 모니터링 작업용 정보를 제공하며, X$ 테이블을 베이스로 하는 뷰이다.
① V$DATAFILE (데이터 파일)
② V$VERSION (오라클의 버전확인)
※ DataDictionaryView [데이터 딕셔너리 뷰]
[데이터 딕셔너리]
- 데이터베이스 자원을 효율적으로 관리하기 위한 시스템 테이블
- 시스템이 직접 관리하는 테이블이라서 암호 같은 내용을 포함하고 있다.
- 사용자의 테이블 생성 및 변경 등의 작업으로 데이터베이스 서버가 작동하면 갱신된다.
- 사용자는 데이터 사전의 내용을 직접 수정 및 삭제 불가하다.
- 데이터 딕셔너리 내용을 사용자가 이해할 수 있는 내용으로 변환하여 제공한다.
- USER_ => 자신의 계정이 소유한 객체 등의 정보 조회
- ALL_ => 자신의 계정을 소유한, 혹은 권한을 부여 받은 객체 등에 관한 정보 조회
- DBA_ => 데이터베이스 관리자만 접근 가능한 객체 등의 정보 조회
(1) sys 계정에서
① DBA_DATA_FILES (데이터 파일에 관한)
② DBA_SYS_PRIVS (계정에 부여된 권한)
③ DBA_USER (계정에 관한)
(2) normal 계정에서
① ALL_TAB_COLUMNS (테이블의 이름과 테이블 크기)
오라클이 MUMBER의 크기가 2여도 디폴트값을 22로 잡는다
오라클이 DATE의 디폴트값을 7로 잡는다
② USER_TABLES (계정이 소유한 테이블 오브젝트)
③ USER_IDN_COLUMNS (계정이 소유한 인덱스 오브젝트)
④ USER_CONSTRAINT_NAME (계정의 제약조건)