본문 바로가기
DB & SQL

[MSSQL] VIEW 테이블의 정의와 사용 방법

by 무사뎀벨레 2024. 3. 28.

 

 

 

 

 

 

 

 

 

VIEW 테이블이란?


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

데이터 베이스 내에 존재하는 데이터들을 가공해서 가상의 테이블에 정의해 가지고 있는 것입니다. 정리해서 뷰테이블이란 아래와 같이 정의할 수 있습니다.

 

1. 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블
2. 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주
3. 뷰는 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용
4. 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화

 

 

 

 

 

 

 

 

VIEW 테이블의 특징


1. 뷰는 기본테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 사용하며, 조작도 기본 테이블과 거의 같음

2. 뷰는 가상 테이블이기 때문에 물리적으로 구현되어 있지 않음

3. 데이터의 논리적 독립성을 제공할 수 있음

4. 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문관리가 용이하고 명령문이 간단

5. 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용 가능

6. 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야지만 삽입, 삭제, 갱신, 연산이 가능

7. 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있음

8. 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제됨

 

 

 

 

 

 

 

 

 

VIEW 테이블의 장단점


장점

1. 논리적 데이터 독립성을 제공
2. 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원
3. 사용자의 데이터관리를 간단하게 해 줌
4. 접근 제어를 통한 자동 보안 제공(아래 사용 방법에서 WITH READ ONLY 참조)

 

단점

1. 독립적인 인덱스를 가질 수 없음
2. ALTER VIEW문을 사용할 수 없다. 즉, 뷰의 정의를 변경할 수 없음
3. 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신, 연산에 제약이 있음

 

 

 

 

 

 

 

 

 

 

VIEW 테이블의 사용 방법


VIEW 테이블 생성 및 조회 문법

-- 뷰 테이블 생성
CREATE VIEW [뷰 테이블 이름] AS
   SELECT [컬럼명] FROM [테이블명]
   
-- 뷰 테이블 조회
SELECT * FROM [뷰 테이블 이름]

 

 

사용 예시

-- 기존에 존재하는 MEMBER_TABLE을 이용해 
-- TEST_1_VIEW_TABLE 이라는 뷰 테이블 생성
  CREATE VIEW TEST_1_VIEW_TABLE AS 
   SELECT 
   	A.NAME, B.SCORE 
   FROM MEMBER_TABLE A
   INNER JOIN MEMBER_SCORE B ON A.ID = B.ID
   WHERE A.GRADE < 2 		
   		AND B.SCORE > 80 
   ORDER BY A.MEMBER_NUM DESC
   
   -- 위에서 생성 한 TEST_1_VIEW_TABLE 뷰 테이블을 조회
   SELECT 
   	* 
   FROM 
   	TEST_1_VIEW_TABLE

 

 

 

옵션 사용

1. WITH READ ONLY

기본 테이블의 어떤 컬럼에 대해서도 뷰를 통한 내용 수정을 불가능하게 만드는 옵션

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

 

 

2. WITH CHECK OPTION

WHERE 조건절 컬럼값을 변경하지 못하게 하는 옵션

 

특정 조건으로 조회하는 뷰 테이블의 결과에 변동을 막아 뷰를 공유하여 보는 사람들이 혼란 없이 볼 수 있도록 하기 위해 사용합니다. 뷰 테이블을 생성할 때 번호가 10인 정보만 추출했다면, 해당 테이블 뷰로 번호를 30번으로 변경할 수 없게 한다는 의미입니다.

CREATE VIEW [뷰이름] AS
   SELECT [컬럼명] FROM [테이블명] 
   WHERE [컬럼명] = [조건이 될 데이터] [WITH READ ONLY]

 

 

정리하자면,

WITH CHECK OPTIONWHERE조건에 사용한 컬럼의 값

WITH READ ONLY본 테이블의 모든 컬럼값수정 못하게 제어합니다.

반응형

'DB & SQL' 카테고리의 다른 글

[SQL] DDL, DML, DCL,TCL  (0) 2024.04.23
[MSSQL] 날짜 형식 포맷 (CONVERT, GETDATE)  (0) 2024.04.16
[MyBatis] MyBatis란?  (2) 2024.03.14
[SQL] JOIN의 정의와 사용법  (1) 2023.07.13
[MSSQL] IN과 NOT IN 사용하기  (2) 2023.04.11

댓글