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 に対してワークベンチを実行し、データベース エクスプローラーでビュー ノードを展開すると、次の結果が得られます。
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 を使用しないでください。