SQL 기본 | DDL : 데이터 정의 언어 | VIEW

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

CREATE VIEW

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

CREATE VIEW "VIEW_NAME" AS "SQL문";

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

VIEW 생성

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

customer 테이블

컬럼명 자료형
first_name char(50)
last_name char(50)
address char(50)
city char(50)
country char(25)
birth_date datetime

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

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

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

v_customer 뷰

컬럼명 자료형
first_name char(50)
last_name char(50)
country char(25)

테이블 결합하여 만든 VIEW

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

store_information 테이블

store_name sales txn_date
Los Angeles 1500 Jan-05-2018
San Diego 250 Jan-07-2018
Los Angeles 300 Jan-08-2018
Boston 700 Jan-08-2018

Geography 테이블

region_name store_name
East Boston
East New York
West Los Angeles
West San 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;

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

region sales
east 700
west 2050

DROP VIEW

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

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