본문 바로가기

SQL/MS-SQL

시스템 뷰의 이해

제목이 짧아서 타이핑하기 좋네요. 히~

이번에 소개해 드릴 내용은 뷰 입니다. ^_^ 매우매우 중요한 DB의 개체 이지요.

앞에서부터 뷰에 대해서 간단히 언급은 해 드렸구요. 생성하는 샘플도 간간히 보여 드렸지용

기억 나시나요?

뷰는 - 테이블의 거울이다.  라고 말씀 드린거요. ^_^

네. 맞습니다.

뷰는 테이블의 거울이지만 거울은 원래모습을 다양하게 비출수도 있지요.

뷰는 테이블의 거울이다라는 샘플을 보여 드리지요. ^_^

 

USE pubs
GO

--konan_view_test1 이라는 뷰를 생성합니다.
CREATE VIEW konan_view_test1
AS
SELECT * FROM titles
GO

--뷰를 조회 합니다.
SELECT * FROM konan_view_test1
GO

 

자 데이터를 조회해 보시면? 테이블과 같은 처리가 되지용? ^_^

 

뷰를 다르게 생성해 쓸 수 있습니다. ^_^

 

USE pubs
GO

--konan_view_test2 이라는 뷰를 생성합니다.
CREATE VIEW konan_view_test2
AS
SELECT title, type, price FROM titles
GO

--뷰를 조회 합니다.
SELECT * FROM konan_view_test2
GO

 

이렇게 쓸수도 있습니다. ^_^

사용자가 볼 경우를 생각해 보세요. 일반 사용자들이 볼 경우

title_id라는 이상한 값들이 필요 할까요?

pubs_id라는 출판사 ID의 고유값이 의미가 있을까요? 아니지요?

뷰를 이용하면 사용자가 원하는 데이터에만 촛점을 맞추게 할 수 있습니다.

 

또다른 뷰의 샘플을 봐 보실까요?

 

USE pubs
GO

--konan_view_test3 이라는 뷰를 생성합니다.
CREATE VIEW konan_view_test3
AS
SELECT titles.title, authors.au_lname, publishers.pub_name
FROM titles INNER JOIN titleauthor ON titles.title_id = titleauthor.title_id
INNER JOIN authors ON titleauthor.au_id = authors.au_id
INNER JOIN publishers ON titles.pub_id = publishers.pub_id
GO

--뷰를 조회 합니다.
SELECT * FROM konan_view_test3
GO

 

상당히 복잡해 보이는 뷰이지요? ^_^

대강 봐도 조인을 3개의 테이블과 하는 군요. 이럴경우 저렇게 조인구문을 길게~~

쓰는 것 보다는?

뷰로 생성한후 뷰를 가지고 장난을 치는 것이 복잡한 질의를

계속 사용하는 것보다 훨씬 쉬울 겁니다. ^_^

 

이해가 조금 가시져? 뷰는 가상의 테이블이다!!! 라는 점 잊지 마시고요 ^_^

다음 강좌인 뷰 생성 부분에서 조금 뷰를 상세히 알아 보도록 하지요 ^_^

출처:코난님의 SQL SERVER2000 강좌입니다.(SQLER.PE.KR )