私が最初にこのことをmysql(sakilaサンプルのmysql dbが持っている)と聞いたときの検索語はgoogle'dでしたが、検索結果は本当に助けになりませんでした。とにかく、まさにそれは何ですか?それを使用する利点と欠点とともにそれを説明するチュートリアルがありますか?mysqlデータベース内の「ビュー」テーブルとは何ですか?
0
A
答えて
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に依存できないものとできないもの
+0
+1非常にいいサンプル –
[http://en.wikipedia.org/wiki/View_(database)](http://en.wikipedia.org/wiki/View_(database)) – zerkms