ビューは視覚化のテーブルです。
この章では、ビューを作成、更新、削除する方法について説明します。
SQL では、ビューは SQL ステートメントの結果セットに基づく視覚的なテーブルです。
ビューには、実際のテーブルと同様に、行と列が含まれます。 ビュー内のフィールドは、1 つ以上のデータベース内の実際のテーブルのフィールドです。 SQL 関数、WHERE および JOIN ステートメントをビューに追加でき、単一のテーブルからのものであるかのようにデータを送信できます。
注: データベースの設計と構造は、ビュー内の関数、where または join ステートメントの影響を受けません。
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
注: ビューには常に最新のデータが表示されます。 ユーザーがビューにクエリを実行するたびに、データベース エンジンは SQL ステートメントを使用してデータを再構築します。
ビューは、クエリ内、ストアド プロシージャ内、または別のビュー内から使用できます。 関数や結合などをビューに追加することで、必要なデータを正確にユーザーに送信できます。
サンプル データベース Northwind には、デフォルトでいくつかのビューがインストールされています。 「現在の製品リスト」ビューには、製品テーブルのすべてのアクティブな製品がリストされます。 このビューは、次の 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 CREATE OR REPLACE VIEW Syntax CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
次に、「Category」列を「Curentrent Product List」ビューに追加します。 次の SQL を使用してビューを更新します。
CREATE VIEW [Current Product List] AS SELECT ProductID,ProductName,Category FROM Products WHERE Discontinued=No
DROP VIEW コマンドを使用してビューを削除できます。
DROP VIEW view_name