SQL :: Oracle :: VIEW

김병철·2022년 9월 15일
0

SQL

목록 보기
9/11

VIEW

OBJECT ?

데이터베이스를 이루는 논리적인 구조물들

OBJECT의 종류

TABLE, USER, VIEW, SEQUENCE, ...

VIEW ?

SELECT한 결과값을 저장해 두는 객체

  • 자주 사용될 긴 SELECT문을 VIEW에 저장해두면 매번 긴 SELECT문을 기술하지 않아도 된다.

  • 조회용 임시테이블과 같다.(실제 데이터가 담긴 것은 아니고 기반 테이블 데이터를 조회해오는 형태)

VIEW 생성

CREATE VIEW 뷰이름
AS 서브쿼리;

CREATE OR REPLACE VIEW 뷰이름
AS 서브쿼리;		-- 뷰 생성 시 기존에 중복된 이름의 뷰가 없다면 생성. 있다면 갱신
  • CREATE VIEW :
CREATE VIEW VW_EMPLOYEE
AS  SELECT EMP_ID,EMP_NAME,DEPT_TITLE,SALARY,NATIONAL_NAME,JOB_NAME
    FROM EMPLOYEE E,DEPARTMENT D,NATIONAL N,JOB J,LOCATION L
    WHERE E.DEPT_CODE=D.DEPT_ID
    AND D.LOCATION_ID=L.LOCAL_CODE
    AND L.NATIONAL_CODE=N.NATIONAL_CODE
    AND E.JOB_CODE=J.JOB_CODE;

-- 생성한 VW_EMPLOYEE를 조회
SELECT *
FROM VW_EMPLOYEE;
  • CREATE OR REPLACE VIEW :
CREATE OR REPLACE VIEW VW_EMPLOYEE
AS SELECT EMP_ID,EMP_NAME,DEPT_TITLE,SALARY,NATIONAL_NAME,JOB_NAME,BONUS
    FROM EMPLOYEE E,DEPARTMENT D,NATIONAL N,JOB J,LOCATION L
    WHERE E.DEPT_CODE=D.DEPT_ID
    AND D.LOCATION_ID=L.LOCAL_CODE
    AND L.NATIONAL_CODE=N.NATIONAL_CODE
    AND E.JOB_CODE=J.JOB_CODE;
  • 뷰를 수정하거나 삭제하면 기반테이블의 데이터가 수정/삭제된다.

FORCE

기반테이블 없이 뷰를 생성할 때 쓰는 속성

  • 예시 :
CREATE FORCE VIEW VW_TEST
AS SELECT * FROM TB_TEST;
profile
keep going on~

0개의 댓글