최보름달

[SQL] 뷰(View) 본문

문송한 회사생활/SQL 공부

[SQL] 뷰(View)

PieMoon 2020. 8. 16. 16:18

 

뷰(view)

테이블은 실제로 데이터를 가지고 있는 반면, 뷰(view)는 실제 데이터를 가지고 있지 않다. 

뷰는 단지 뷰 정의 (view definition)만을 가지고 있다. 

질의에서 뷰가 사용되면 뷰 정의를 참조해서 DBMS 내부적으로 질의를 재작성 하여 질의를 수행한다. 

뷰는 실제 데이터를 가지고 있지 않지만 테이블이 수행하는 역할을 수행하기 때문에 가상 테이블(virtual table)이라고도 한다. 

 

뷰의 장점

독립성 : 테이블 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 된다. 

편리성 : 복잡한 질의를 뷰로 생성함으로써 관련 질의를 단순하게 작성할 수 있다. 

보안성 : 직원의 급여정보와 같이 숨기고 싶은 정보가 존재한다면 뷰를 생성할 때 해당 컬럼을 빼고 생성해서 감출 수 있다. 

 

뷰 생성하기

CREATE VIEW   V_PLAYER_TEAM AS
SELECT        P.PLAYER_NAME, P.POSITION, P.BACK_NO, P.TEAM_ID, T.TEAM_NAME
FROM          PLAYER P, TEAM T
WHERE         P.TEAM_ID = T.TEAM_ID ; 

뷰의 명칭은 "V_PLAYER_TEAM" 이다. 

이미 존재하는 뷰를 참조해서 생성할 수도 있다. 

CREATE VIEW   V_PLAYER_TEAM_FILTER AS
SELECT        PLAYER_NAME, POSITION, BACK_NO, TEAM_ID, TEAM_NAME
FROM          V_PLAYER_TEAM
WHERE         POSITION IN ('GK', 'MF') ;

 

 

뷰 사용하기 

SELECT  PLAYER_NAME, POSITION, BACK_NO, TEAM_ID, TEAM_NAME
FROM    V_PLAYER_TEAM
WHERE   PLAYER_NAME LIKE '황%' ;

 

 

뷰 제거하기

DROP VIEW  V_PLAYER_TEAM ;
DROP VIEW  V_PLAYER_TEAM_FILTER ; 

 

 

 

 

 

 

kdata 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다.