SQL/데이터 베이스 기초

[MS-SQL] view(가상테이블) 개념, 사용법 / 임시 테이블 차이점

삐뚤어진 개발자 2019. 12. 26.

데이터 베이스에서 자주 쓰이는 뷰(view)의 개념을 설명하겠다.

뷰는 다른 말로 가상테이블 이라고 하는데

말그대로 데이터를 저장하는 테이블이 아니라 가상으로 존재하는 테이블이다.

 

데이터 베이스 내에 존재하는 데이터들을 가공해서 가지고 있는 것이다. 하지만 추가,삭제 등을 할 수있다.

장점은 데이터들을 복잡하게 가공해서 뷰 테이블에 저장해, 간단하게 조회할 수 있다.

 

뷰를 사용하는 이유는

1. 복잡한 쿼리를 저장해 놓고 간단하게 사용할 수 있다.

2. 보안상 안전하다. 

 

예를 들어보겠다.

 

문법은 간단하게 이렇다.

MSSQL 뷰 문법

  CREATE VIEW [뷰이름] AS
   SELECT [컬럼명] FROM [테이블명] 

Ex) 

  -- 뷰를 생성하고. TEST_VIEW_TALBE
  CREATE VIEW TEST_VIEW_TALBE AS 
   SELECT A.NAME, B.YEAR FROM PEOPLE A
   		INNER JOIN CAREER B ON A.ID = B.ID
   WHERE A.AGE < 20 -- 20세 이하
   	AND B.YEAR > 3 	-- 경력 3년 이상
   ORDER BY A.AGE DESC
   
   -- 뷰를 조회
   SELECT * FROM TEST_VIEW_TALBE

이런식으로 사용할 수 있다는 말이다.

 

 

 

- 그리고 보안상 안전하다고 사용하기도 한다.

 

뷰의 데이터를 조회만 하고 싶다면, 뷰를 생성할 때, WITH READ ONLY 를 붙여주면 된다.

  CREATE VIEW [뷰이름] AS
   SELECT [컬럼명] FROM [테이블명] 
  [WITH READ ONLY]

 

마지막으로 임시 테이블과의 차이는 뷰는 삭제하지 않으면 계속 남아있는 가상의 테이블이고

임시 테이블은 세션이 끝나면 자동으로 지워진다. 

그리고 뷰 테이블이 WITH READ ONLY, WITH CHECK OPTION 이라던지 옵션을 줄수 있어 보안상으로 더 유용하게 사용할 수있다.

댓글