CKtrace's Devlog
[DB] - 뷰 본문
About View
뷰(View)는 일반적인 테이블과 달리 데이터를 실제로 저장하고 있지 않은, 다른 테이블을 기반으로 생성된 Virtual Table, 즉 가상 테이블입니다.
알아두어야 할 점은, 뷰는 실제로 존재하지는 않지만 논리적으로 존재하면서
일반 테이블과 동일한 방법으로 사용한다는 것입니다.
기존의 테이블을 기반으로 다른 테이블을 생성할 수 있듯이, 뷰 또한 다른 뷰를 기반으로 새로운 뷰를 생성할 수도 있습니다.
뷰라는 개념을 이해할 때, 창문 너머로 바라보는 풍경에 빗대면 이해하기 쉬워집니다.
창문 넘어의 풍경을 밖을 바라보는 각도나 위치, 창문의 크기나 모양 등에 따라 보이는 부분이 달라지는 것처럼 뷰 또한 기존 테이블을 어떻게 바라보느냐에 따라 보이게 되는 부분이 다릅니다.
허나 창 밖의 풍경을 직접 만지거나 수정하기 어려운 것과 같이, 뷰를 통해 기본 테이블 내용을 검색하는 것은 어렵지 않지만 기본 테이블의 내용을 바꾸는 것은 제한적으로 이루어집니다.
Create View
뷰를 생성하기 위한 SQL 명령어는 CREATE VIEW입니다.
기본 형태
CREATE VIEW view_name[(attribute_list)]
AS SELECT 문
[WITH CHECK OPTION];
/*WITH CHECK OPTION은 생성한 뷰에 삽입이나 수정 연산을 할 때 SELECT 문에서
제시한 뷰의 정의 조건을 위반했을 시 수행되지 않도록 하는 제약 조건을 제시합니다.*/
활용 형태
CREATE VIEW 최다구매고객(고객_ID, 고객성함, 주소)
AS SELECT 고객_ID, 고객성함, 주소
FROM 고객정보
WHERE 등급='KING'
WITH CHECK OPTION;
Code Review
☞ 고객정보 데이블에서 등급이 KING인 고객_ID, 고객성함, 주소로 구성된 뷰를 최다구매고객이라는 이름이 생성합니다.
Utilizing Views
뷰를 생성하는 방법에 대해 알아보았으니 생성한 뷰를 활용하는 방법에 대해 알아보도록 하겠습니다.
뷰는 일반적인 테이블처럼 원하는 데이터를 검색할 수 있습니다.
활용 형태
SELECT *
FROM 최다구매고객
WHERE 고객성함 = '김__';
Code Review
☞ 위에서 만들어 본 최다구매고객 뷰에서 고객성함 중 성이 김 씨인 세 글자 이름을 갖고 있는 고객의 최다구매고객 속성들을 모두 검색됩니다.
View Deletion
뷰를 삭제하기 위해 필요한 SQL 명령어는 DROP VIEW입니다.
기본 형태
DROP VIEW view_name;
활용 형태
DROP VIEW 최다구매고객;
Code Review
☞ 위에서 만들어 본 최다구매고객 뷰를 삭제합니다.
Why we use View instead of Table?
그렇다면 왜 일반적인 테이블 대신 뷰를 사용하는 것일까요?
아래와 같은 총 세 가지의 이유가 존재합니다.
- 쿼리, 즉 질의문을 좀 더 쉽게 작성 가능합니다.
- 데이터를 조금 더 편하게 관리하는 것이 가능합니다.
- 데이터의 보안 유지에 도움이 됩니다.
이러한 이유로 테이블 대신 뷰를 생성하여 사용하는 것입니다.
이상으로 뷰에 대한 글을 마치도록 하겠습니다.
긴 글이었지만 읽어주셔서 감사하다는 말씀드리며, 다음에는 더 좋은 글로 찾아뵙도록 하겠습니다!
감사합니다.
'DB' 카테고리의 다른 글
[DB] - 데이터베이스 설계 및 이상 현상 (0) | 2022.06.27 |
---|---|
[DB] - 삽입 SQL (ESQL) (0) | 2022.06.27 |
[DB] - SQL의 데이터 조작 기능 (0) | 2022.06.27 |
[DB] - SQL의 데이터 정의 기능 (0) | 2022.06.23 |
[DB] - 관계 데이터 연산 (0) | 2022.06.23 |