반응형

- 논리적인 테이블


- 물리적으로도 연결되어 있기 때문에 원본과 VIEW가

  서로 상호적으로 데이터 변경 시 각자에 반영된다.


- SELECT를 단순하게 하기 위해 WIEW씀

  (내가 정의해서 저장해놓고 쓰고 싶을 때마다 호출하여 쓸 수 있다.)


- 보안상으로 VIEW씀


// 뷰 생성

CREATE VIEW EMP_VIEW(EMPNO, ENAME, JOB) AS

SELECT EMPNO, ENAME, JOB FROM EMP WHERE JOB='SALESMAN';


// 뷰 생성 OR 수정

  -> 없는 뷰 이름을 써주면 뷰가 생성되고 있는 뷰 이름을 써주면 뷰가 수정된다.

CREATE OR REPLACE VIEW EMP_VIEW(EMPNO, ENAME, JOB) AS

SELECT EMPNO, ENAME, JOB FROM EMP WHERE JOB='SALESMAN';


컬럼명은 달라도 되지만 나중에 알아봐야 하기 때문에 같은 이름으로

주는것을 지향한다.


CREATE 해야 나중에 종료 후에도 쓸 수 있다.


// 그룹 뷰 생성 시 꼭 별명을 써야한다. 아래 에러

CREATE VIEW V1(DEPTNO, AVG(SAL), SUM(SAL)) AS
SELECT DEPTNO, AVG(SAL), SUM(SAL) FROM EMP GROUP BY DEPTNO;


// 그룹 뷰 생성 시  생성 방법

CREATE VIEW V1(DEPTNO, 평균, 합) AS
SELECT DEPTNO, AVG(SAL) AS 평균, SUM(SAL) 합 FROM EMP GROUP BY DEPTNO;


// 내가 만든 VIEW의 내용 조회

SELECT VIEW_NAME, TEXT FROM USER_VIEWS;


VIEW_NAME                                                    TEXT
-------------------          --------------------------------------------------------
EMP_VIEW                       SELECT EMPNO, ENAME, JOB FROM EMP

                                       WHERE JOB='SALESMAN'

V1                                   SELECT DEPTNO, AVG(SAL) AS 평균, SUM(SAL) 합

                                       FROM EMP GROUP BY DEPTNO


// 복합 VIEW 생성

CREATE VIEW EMPVI(EMPNO, ENAME, JOB, DEPTNO, DNAME) AS
SELECT E.EMPNO, E.ENAME, E.JOB, D.DEPTNO, D.DNAME FROM EMP E, DEPT D
WHERE E.DEPTNO=D.DEPTNO AND JOB='SALESMAN';

[출처] View|작성자 bkh4536

+ Recent posts