데이터베이스를 이루는 논리적인 구조물들
TABLE, USER, VIEW, SEQUENCE, ...
SELECT한 결과값을 저장해 두는 객체
자주 사용될 긴 SELECT문을 VIEW에 저장해두면 매번 긴 SELECT문을 기술하지 않아도 된다.
조회용 임시테이블과 같다.(실제 데이터가 담긴 것은 아니고 기반 테이블 데이터를 조회해오는 형태)
CREATE VIEW 뷰이름
AS 서브쿼리;
CREATE OR REPLACE VIEW 뷰이름
AS 서브쿼리; -- 뷰 생성 시 기존에 중복된 이름의 뷰가 없다면 생성. 있다면 갱신
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 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;
기반테이블 없이 뷰를 생성할 때 쓰는 속성
CREATE FORCE VIEW VW_TEST
AS SELECT * FROM TB_TEST;