0

これについて mysql で初めて聞いたときにこの用語をグーグルで検索しましたが (サキラのサンプル mysql db にはそれがあります)、検索結果は実際には役に立ちません。とにかく、それは正確には何であり、それを使用することの長所と短所とともにそれを説明するチュートリアルはありますか?

4

1 に答える 1

3

ビューは名前付きの保存されたクエリであり、テーブルであるかのように他のクエリで使用できます。

ビューは、テーブル内の行のサブセットを表示する場合があります。

CREATE VIEW v1 AS
    SELECT Column1, Column2, ..., ColumnN
      FROM AnotherTable WHERE SomeColumn = 234;

ビューは、テーブル内の列のサブセットを表示する場合があります。

CREATE VIEW v2 AS
    SELECT Column2, Column3, Column5, Column7
      FROM AnotherTable;

結合などを使用して、より複雑なクエリを実行することもできます。

CREATE VIEW OrderInfo AS
    SELECT o.order_num, c.customer_num, c.customer_name,
           o.order_date, o.invoice_num, i.product_code, p.product_name
      FROM Orders     AS o
      JOIN Customers  AS c ON c.customer_num = o.customer_num
      JOIN OrderItems AS i ON i.order_num    = o.order_num
      JOIN Products   AS p ON p.product_code = i.product_code

次に、ユーザーは次のようなクエリを作成できます。

SELECT *
  FROM OrderInfo
 WHERE Order_Date BETWEEN DATE '2012-01-01' AND DATE '2012-01-31'
   AND Product_Code LIKE "%23491%";

すべてのテーブルを結合する方法を知る必要はありません。

ビューを使用してデータへのアクセスを制御することもできます。ビュー定義者の権限により、ユーザーは、他の方法では禁止されているテーブルにアクセスできる場合があります。データベースのスキーマを変更した後、ビューを使用して下位互換性を提供することもできます。新しいスキーマのテーブルの名前と定義を変更しますが、変更されていないプログラムがスキーマが変更されていないかのようにデータベースを読み取り続けることを可能にするビューを残します。

一部のビューは更新できます。他の人はできません。どちらができるか、どれができないかは、DBMSによって異なります。

于 2012-04-07T04:35:20.673 に答える