슬기로운 개발자 생활

[SQL][DDL] VIEW 본문

IT 개발/SQL

[SQL][DDL] VIEW

개발자 너부리 2018. 1. 9. 23:12
반응형

뷰(View)는 가상 테이블로 볼 수 있다. 테이블과의 차이점은 테이블에 데이터가 실제로 저장되어 있지만, 뷰는 테이블에 만들어진 구조에서 데이터가 실제로 저장되지 않는다.

CREATE VIEW

뷰를 생성하는 명령문은 다음과 같다.

CREATE VIEW "VIEW_NAME" AS "SQL문";

"SQL문"는 어떠한 SQL이라도 상관없다.

VIEW 생성

예를 들면, 다음과 같은 테이블이 있다고 하자.

customer 테이블

컬럼명자료형
first_namechar(50)
last_namechar(50)
addresschar(50)
citychar(50)
countrychar(25)
birth_datedatetime

이 테이블에서 first_name, last_name과 country 3개의 필드가 포함된 뷰를 만드는 경우 다음과 같이 입력한다.

CREATE VIEW v_customer
AS SELECT first_name, last_name, country
FROM customer;

그러면 v_customer라는 뷰가 생성된다.

v_customer 뷰

컬럼명자료형
first_namechar(50)
last_namechar(50)
countrychar(25)

테이블 결합하여 만든 VIEW

뷰를 사용하여 두 테이블을 조인할 수도 있다. 따라서 사용자는 두 개의 서로 다른 테이블을 결합하지 않아도, 뷰로 사용하여 필요한 정보를 직접 확인할 수 있다. 가령 다음과 같은 두 테이블이 있다고 하자.

store_information 테이블

store_namesalestxn_date
Los Angeles1500Jan-05-2018
San Diego250Jan-07-2018
Los Angeles300Jan-08-2018
Boston700Jan-08-2018

Geography 테이블

region_namestore_name
EastBoston
EastNew York
WestLos Angeles
WestSan Diego

아래 명령으로 지역(Region)의 판매(Sales)가 포함된 뷰를 만들 수 있다.

CREATE VIEW v_region_sales
AS SELECT A1.region_name region, SUM(A2.sales) sales
FROM geography A1, store_Information A2
WHERE A1.store_name = A2.store_name
GROUP BY A1.region_name;

이것으로 v_region_sales라는 뷰가 생성되었다. 이 뷰에 다른 지역의 매출 데이터가 포함된다. 이 뷰에서 데이터를 검색하는 경우 다음과 같이 입력한다.

SELECT * FROM v_region_sales;

위 명령의 결과는 아래와 같다.

regionsales
east700
west2050

DROP VIEW

DROP VIEW 명령을 사용하여 기존 뷰를 삭제한다.

DROP VIEW "[데이터베이스명.]VIEW_NAME";


반응형

'IT 개발 > SQL' 카테고리의 다른 글

[SQL][DDL] Primary Key : 기본 키  (0) 2018.01.09
[SQL][DDL] INDEX  (0) 2018.01.09
[SQL][DDL] TABLE  (0) 2018.01.09
[SQL][DDL] DATABASE  (0) 2018.01.09
[SQL] Comments : 주석  (0) 2018.01.09
Tag
0 Comments
댓글쓰기 폼