본문 바로가기

Dev. Database/Oracle

VIEW - 테이블을 비추는 창

VIEW라는 것은 쉽게 생각하면 테이블을 보기 위한 창문 정도로 생각하면 된다. 테이블을 방으로 생각하고 뷰를 그 방을 보는 창문으로 생각해보자. 창문을 통해 방안을 보면 방안의 모든 내용을 볼 수 없지만, 내가 보려고 하는 물건이 정해져 있다면 그것만 창의 시야 안에 갖다 놓으면 다른 것은 볼 필요가 없을 것이다. 오히려 방에 들어가서 직접 보고자 하는 물건을 찾는 것보다 미리 내가 지정한 것만을 창 앞에 가져다 놓고 그것만을 본다면 더 편리할 것이다.


테이블과 뷰도 같은 경우이다. 창문을 통해 본다는 것은 창문이 물건을 가지고 잇는 것이 아니고 방에 있는 물건이 창을 통해 비치는 것 뿐이다. 내가 그 방안을 보고자 해서 창문을 두들기면 창문은 그 순간의 방안의 모습을 비춰놓고 창을 닫는다. 그걸 우리가 보는 것이다. 뷰를 통해 데이터를 읽으면 SQL이 실행되는 순간에 테이블의 상태 그대로가 읽혀온다. VIEW의 역할이 바로 그것이다. VIEW의 의미는 하나의 SELECT문과 같다고 생각하면 된다. 


물론 VIEW를 통한 INSERT, UPDATE, DELETE가 가능하지만 대개의 경우는 SELECT를 위해 사용한다. 단지 그 SELECT 문장을 내가 PC에 저장해 놓고 필요할 때마다 실행시키는 것이 아니고 DB에 저장해 놓고 그 파일(뷰)을 내가 필요할 때마다 파일명(뷰 이름)을 주어서 실행시켜 테이블처럼 사용한다고 생각하면 편할 것이다. 또한 뷰를 통해 볼 수 잇는 영역이 정해져 잇으므로 권한 관리의 한 수단으로 이용할 수도 있을 것이다.


[VIEW 사용 예제]

CREATE VIEW TEMP_VIEW

AS

SELECT A.EMP_ID AS "사번",

       A.EMP_NAME AS "성명",

       A.BIRTH_DATE AS "생일",

       A.DEPT_CODE AS "부서",

       B.DEPT_NAME AS "부서명",

       A.SALARY AS "년봉",

       A.LEV AS "직급"

FROM TEMP A, TDEPT B

WHERE 1=1

  AND B.DEPT_CODE = A.DEPT_CODE

  AND A.EMP_TYPE = '정규'

;

  

SELECT *

FROM TEMP_VIEW;