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
ビューを使用して 2 つのテーブルを結合することもできる。これにより、ユーザーは 2 つの異なるテーブルを直接結合しなくても、ビューを通じて必要な情報を確認できる。たとえば、次の 2 つのテーブルがあるとする。
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";