SQL VIEW (ビュー)

SQL AUTO INCREMENT SQL Date

ビューは視覚化のテーブルです。

この章では、ビューを作成、更新、削除する方法について説明します。

SQL CREATE VIEW ステートメント

ビューとは何ですか?

SQL では、ビューは SQL ステートメントの結果セットに基づく視覚的なテーブルです。

ビューには、実際のテーブルと同様に、行と列が含まれます。 ビュー内のフィールドは、1 つ以上のデータベース内の実際のテーブルのフィールドです。 SQL 関数、WHERE および JOIN ステートメントをビューに追加でき、単一のテーブルからのものであるかのようにデータを送信できます。

注: データベースの設計と構造は、ビュー内の関数、where または join ステートメントの影響を受けません。

SQL CREATE VIEW 構文

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

注: ビューには常に最新のデータが表示されます。 ユーザーがビューにクエリを実行するたびに、データベース エンジンは SQL ステートメントを使用してデータを再構築します。

SQL CREATE VIEW インスタンス

ビューは、クエリ内、ストアド プロシージャ内、または別のビュー内から使用できます。 関数や結合などをビューに追加することで、必要なデータを正確にユーザーに送信できます。

サンプル データベース 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 更新ビュー

次の構文を使用してビューを更新できます。

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

SQL 元に戻すビュー

DROP VIEW コマンドを使用してビューを削除できます。

SQL DROP VIEW 構文

DROP VIEW view_name