最新のWeb開発のチュートリアル
 

SQLビュー


ビューは、仮想テーブルです。

この章では、更新プログラムを作成し、ビューを削除する方法を示しています。


SQLは、CREATE VIEWステートメント

SQLでは、ビューは、SQL文の結果セットに基づいて、仮想テーブルです。

ビューには、本物のテーブルのように、行と列が含まれています。 ビューのフィールドは、データベース内の1つまたは複数の実テーブルからフィールドです。

あなたはWHERE、SQL関数を追加し、ビューに文をJOINと、データが1つのテーブルから来ていたかのようにデータを提示することができます。

VIEW構文を作成するSQL

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

Note:ビューは常に最新のデータを示しています! データベースエンジンはビューのSQL文、ユーザーがビューを照会するたびに使用して、データを再作成します。


VIEWの例を作成するSQL

あなたはNorthwindデータベースを使用している場合、あなたはそれがデフォルトでインストール複数のビューを持っていることがわかります。

ビュー「現在の製品リストは、「からすべてのアクティブな製品(廃止されていない製品)をリスト"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年の製品販売」と呼ばれる別のビューからそのデータを選択していることを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は、VIEW構文をCREATE OR REPLACE

CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

今、私たちは追加したい"Category" 「現在の製品リスト」ビューに列を。 私たちは、次のSQLを使用してビューを更新します。

CREATE OR REPLACE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No

ビューの削除SQL

あなたはDROP VIEWコマンドを使用してビューを削除することができます。

SQL DROP VIEW構文

DROP VIEW view_name