Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |
Tags
- php
- maven
- Ajax
- SQLite
- Eclipse
- node.js
- 일본
- Python
- gradle
- Apache
- spring boot
- 외국인 노동자
- angularjs
- swift
- build tool
- pdo
- jquery
- RSocket
- bootstrap
- mybatis
- xml
- javadoc
- Linux
- WebClient
- JavaFX
- 개발자 이야기
- Spring
- Java
- SQL
- webflux
- Today
- 123
- Total
- 3,697,220
슬기로운 개발자 생활
[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";
반응형
'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
- SQL
0 Comments