SQL VIEW(ビュー)
- 前のページ SQL Increment
- 次のページ SQL Date
ビューは可視化されたテーブルです。
この章では、ビューの作成、更新、削除方法について説明します。
SQL CREATE VIEW 文
ビューとは何ですか?
SQLでは、ビューはSQL文の結果セットに基づく可視化されたテーブルです。
ビューは行と列を含み、実際のテーブルと同じです。ビューのフィールドは、1つまたは複数のデータベースの実際のテーブルのフィールドから来ています。SQL関数、WHERE、JOIN文をビューに追加し、これらが単一のテーブルから来たかのようにデータを提供できます。
注記:ビュー内の関数、WHERE、またはジョイン文がデータベースの設計や構造に影響を与えません。
SQL CREATE VIEW 文法
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
注記:ビューは常に最新のデータを表示します。ユーザーがビューをクエリするたびに、データベースエンジンは SQL ステートメントを使用してデータを再構築します。
SQL CREATE VIEW インスタンス
ビューは、クエリの内部、ストアドプロシージャの内部、または別のビューの内部から使用できます。ビューに関数やジョインなどを追加することで、ユーザーに希望するデータを正確に提供できます。
サンプルデータベースの Northwind には、デフォルトでインストールされているビューがあります。ビュー「Current Product List」は、Products テーブルからすべての使用中の製品をリストアップします。このビューは以下の SQL で作成されています:
CREATE VIEW [Current Product List] AS SELECT ProductID,ProductName FROM Products WHERE Discontinued=No
上記のビューをクエリすることができます:
SELECT * FROM [Current Product List]
Northwind サンプルデータベースの別のビューは、Products テーブル内のすべての単価が平均単価を超える製品を選択します:
CREATE VIEW [Products Above Average Price] AS SELECT ProductName,UnitPrice FROM Products WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)
上記のビューをこんなようにクエリできます:
SELECT * FROM [Products Above Average Price]
Northwind データベースからの別のビューインスタンスは、1997年に各種の販売総数を計算します。注意してください、このビューは「Product Sales for 1997」と呼ばれる別のビューからデータを選択します:
CREATE VIEW [Category Sales For 1997] AS SELECT DISTINCT CategoryName, Sum(ProductSales) AS CategorySales FROM [Product Sales for 1997] GROUP BY CategoryName
上記のビューをこんなようにクエリできます:
SELECT * FROM [Category Sales For 1997]
クエリに条件を追加することもできます。現在、"Beverages" クラスの全ての売上を見る必要があります:
SELECT * FROM [Category Sales For 1997] WHERE CategoryName='Beverages'
SQL ビュー更新
以下の文法を使用してビューを更新できます:
SQL CREATE OR REPLACE VIEW 文法 CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
現在、"Current Product List" ビューに "Category" 列を追加したいと思っています。以下の SQL を使用してビューを更新します:
CREATE VIEW [Current Product List] AS SELECT ProductID, ProductName, Category FROM Products WHERE Discontinued=No
SQL ビュー取り消し
DROP VIEW コマンドを使用してビューを削除できます。
SQL DROP VIEW 文法
DROP VIEW view_name
- 前のページ SQL Increment
- 次のページ SQL Date