MySQL ビュー: テーブルからビューを作成する方法と例

ビューとは MySQL?

VIEWS 仮想テーブルは、それ自身のデータを格納せず、他のテーブルに格納されているデータを表示します。言い換えれば、VIEW は SQL クエリにほかなりません。ビューには、テーブルのすべての行またはいくつかの行を含めることができます。あ MySQL ビューでは、1 つのテーブルまたは複数のテーブルのデータを表示できます。

MySQL ビューの構文

次に、ビューを作成するために使用される基本的な構文を見てみましょう。 MySQL.

CREATE VIEW `view_name` AS SELECT statement;

WHERE

  • 「CREATE VIEW `view_name`」 伝える MySQL サーバーは、`view_name` という名前のデータベースにビュー オブジェクトを作成します。
  • 「AS SELECT文」 にパックされる SQL ステートメントです。 MySQL ビュー。 SELECT ステートメントには 1 つのテーブルまたは複数のテーブルのデータを含めることができます。

でビューを作成する方法 MySQL

以下は、ビューを作成するための手順です。 MySQL:

ステップ1) 「myflixdb」を使用して最初のビューを作成します

次に、「myflixdb」を使用して最初のビューを作成しましょう。メンバー テーブルに表示される列を制限する単純なビューを作成します。

承認要件に、会計部門がメンバーのテーブルからメンバーの番号、名前、性別のみを確認できると記載されているとします。 これを実現するには、VIEW を作成します。

CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;

ステップ2) ビューノードを展開する

上記のスクリプトを実行すると、 MySQL myflixdb に対してワークベンチを実行し、データベース エクスプローラーでビュー ノードを展開すると、次の結果が得られます。

ビューの作成 MySQL

accounts_v_members オブジェクトがデータベース ビュー オブジェクトに表示されるようになったことに注意してください。

ステップ3) SELECT ステートメントを実行する

では、実行してみましょう SELECTステートメント 以下に示すように、ビューからすべてのフィールドを選択します。 MySQL ビューの作成例。

SELECT * FROM `accounts_v_members`;

ステップ4) スクリプトを実行する

上記のスクリプトを実行すると、 MySQL myflixdb に対する workbench では、以下に示すような結果が得られます。

membership_number full_names gender
1 Janet Jones Female
2 Janet Smith Jones Female
3 Robert Phil Male
4 Gloria Williams Female
5 Leonard Hofstadter Male
6 Sheldon Cooper Male
7 Rajesh Koothrappali Male
8 Leslie Winkle Male
9 Howard Wolowitz Male

会計部門の承認された列のみが返されました。メンバー テーブルにあるその他の詳細は非表示になっています。

特定のビューを構成する SQL ステートメントを確認したい場合は、以下に示すスクリプトを使用してそれを行うことができます。

SHOW CREATE VIEW `accounts_v_members`;

上記のスクリプトを実行すると、ビュー名とビューの作成に使用される SQL SELECT ステートメントが得られます。

の結合とビュー MySQL

では、複数のテーブルと、 ジョイン.

3 つのテーブル (メンバー、映画、映画レンタル) から情報を取得するために作成された JOIN をパッケージ化します。 以下は、これを実現するのに役立つスクリプトです。

CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;

上記のスクリプトを実行すると、myflixdb に general_v_movie_rentals という名前のビューが作成されます

次に、general_v_movie_rentals という名前のテーブルからすべてのフィールドを選択しましょう。

SELECT * FROM `general_v_movie_rentals`;

上記のスクリプトを実行すると、 MySQL 作業台 myflixdb に対して実行すると、以下に示す結果が得られます。

membership_number full_names title transaction_date return_date
1 Janet Jones Pirates of the Caribean 4 20-06-2012 28-06-2012
1 Janet Jones Forgetting Sarah Marshal 22-06-2012 25-06-2012
3 Robert Phil Forgetting Sarah Marshal 22-06-2012 25-06-2012
2 Janet Smith Jones Forgetting Sarah Marshal 21-06-2012 24-06-2012
3 Robert Phil X-Men 23-06-2012 28-06-2012

メンバー、映画、映画レンタルの詳細に関する情報を取得するために、複雑な JOIN クエリを作成する必要はありませんでした。他の通常のテーブルと同様に、通常の SELECT ステートメントでビューを使用しました。ビューは、myflixdb 上で実行されているアプリケーション システムのどこからでも呼び出すことができます。

ビューのドロップ MySQL

DROP コマンドを使用すると、ビューを削除できます。 データベース それはもう必要ありません。 ビューを削除するための基本的な構文は次のとおりです。

DROP VIEW ` general_v_movie_rentals `;

ビューを使用する理由

ビューを使用する主な理由は次の3つです。

  • 最終的には、 SQL データ要件にデータベースを使用するアプリケーションを作成するための知識。 テーブル自体を使用するのではなく、アプリケーションで元のテーブル構造の VIEWS を使用することをお勧めします。 これにより、DB をリファクタリングするときに、アプリケーションを中断することなく、レガシー コードがビューを介して元のスキーマを参照できるようになります。
  • VIEWS は再利用性を高めます。繰り返し結合を伴う複雑なクエリを作成する必要はありません。VIEWS を使用すると、すべての複雑さが 1 行のクエリに変換されます。このように凝縮されたコードは、アプリケーションに統合しやすくなります。これにより、タイプミスの可能性がなくなり、コードがより読みやすくなります。
  • ビューはデータ セキュリティに役立ちます。ビューを使用すると、ユーザーに許可された情報のみを表示し、クレジットカード番号などの機密データを非表示にすることができます。

製品概要

  • ビューは仮想テーブルです。 返されるデータは含まれません。 データは、SELECT ステートメントで参照されるテーブルに保存されます。
  • ビューは、許可されたユーザーに目的のデータのみを表示することで、データベースのセキュリティを向上させます。機密データは非表示になります。
  • ビューを使用すると、複雑なクエリを何度も記述する必要がないため、作業が簡単になります。
  • VIEW では INSERT、UPDATE、および DELETE を使用できます。これらの操作により、VIEW の基になるテーブルが変更されます。唯一の考慮事項は、VIEW には参照するテーブルのすべての NOT NULL 列が含まれている必要があることです。理想的には、更新には VIEW を使用しないでください。