뷰
개념 : 하나이상의 테이블을 합하여 만든 '가상테이블'
** select문을 이용하여 최종결과를 얻음.
** 그 결과를 마치 실제 테이블처럼 사용할 수 있도록 만들어주는 데이터 베이스 객체이다.
** 실제 데이터를 디스크에 저장하지 않는다. 대신에 뷰를 생성할 때 사용한 select문의 정의를 DBMS가 저장 => 사용자에게 반환
장점 :
편리성 = 미리 정의된 뷰를 일반 테이블 처럼 사용 OR 사용자가 필요한 정보만 요구에 맞게 가공하여 뷰로 만듬.
재사용성 = 자주 사용되는 질의를 뷰로 미리 정의해 놓을 수 있음
보완성 = 각 사용자별로 필요한 데이터만 선별할 수 있다.
뷰 생성
예) CREATE VIEW 뷰이름 [(열이름[,.....N])]
AS SELECT 문
1. 테이블을 먼저 생성한다.
CREATE TABLE DEPT(
DEPTNO NUMBER(10),
NAME VARCHAR(20));
2. 뷰를 생성한다.
CREATE VIEW V_DEPT
AS SELECT *
FROM DEPT
WHERE DEPTNO = 10;
" BUT 뷰 생성 오류 발생 : ORA-01031: 권한이 불충분합니다 "
CONN SYSTEM
설치 할 때 입력했던 비밀번호
GRANT CREATE VIEW(INDEX) TO 사용자 계정 (연결할 EX : SCOTT)
CONN 사용자 계정 (연결할 EX : SCOTT)
확인
SELECT *
FROM DEPT;
뷰 수정
예) CREATE OR REPLACE VIEW 뷰이름 [(열이름[,.....N])]
AS SELECT 문
생성된 뷰를 수정하는데 내용을 수정하는 것이 아니다. 보여지는 가상테이블을 변경해주는 것 (착각 주의!)
CREATE OR REPLACE VIEW V_DEPT
AS SELECT *
FROM DEPT
WHERE DEPTNO = 20;
확인
SELECT *
FROM DEPT;
뷰 삭제
예) DROP VIEW 뷰이름 [ ,.....N];
DROP VIEW V_EMP;
확인
SELECT *
FROM DEPT;
1. 단순 VIEW(SIMPLE VIEW)
: 단순 VIEW는 VIEW를 생성할 서브쿼리에 조인 조건없이 1개의 테이블로 만들어지는 간단한 VIEW.
예) CREATE [OR REPLACE][FORCE|NOFORCE] VIEW 뷰이름 [(열이름[,.....N])]
AS SELECT 문
[WITH CHECK OPTION [CONSTRANIT 제약조건]]
[WITH READ ONLY]
* 용어 설명 *
FORCE : 기본 테이블의 존재 여부에 상관없이 VIEW생성
NOFORCE : 기본 테이블이 존재 할 경우에만 VIEW 생성, 기본 값.
WITH CHECK OPTION : 주어진 제약조건에 맞는 데이터만 입력 및 수정을 허용
WITH READ ONLY : SELECT만 가능한 일기 전용 뷰를 생성
2. 복합 VIEW ( COMPLEX VIEW )
: 여러 개의 테이블이 JOIN되어 생성되는 것.
예) CREATE [OR REPLACE][FORCE|NOFORCE] VIEW 뷰이름 [(열이름[,.....N])]
AS SELECT 문
[WITH CHECK OPTION [CONSTRANIT 제약조건]]
[WITH READ ONLY]
CREATE OR REPLACE VIEW V_EMP_DEPT
AS SELECT E.ENAME , D.DNAME
FROM EMP E, DEPT D
ON E.DEPARTMENT = D.DEPARTMENT
WHERE E.DEPARTMENT =100;
3. 인라인 VIEW (INLINE VIEW)
: 여러 번 사용할 필요 없이 1회만 필요한 VIEW일 경우 SQL문자의 FROM절에
VIEW의 서브쿼리 부분을 바로 적어주면 되며 이런 일회용 VIEW를 말함.
'DataBase' 카테고리의 다른 글
트랜잭션 (0) | 2018.11.09 |
---|---|
[데이터베이스 문자 함수][dual이란?] (0) | 2018.11.07 |
데이터 베이스 인데스[개념][생성/변경/삭제] (0) | 2018.11.07 |
데이터베이스 시퀀스[정의][cmd 시퀀스 생성, 수정, 삭제] (0) | 2018.11.06 |