ビューの概要
MySQL 5 が必要 MySQL 5 ではビューのサポートが追加されています。したがって、この章の内容は MySQL 5 以降のバージョンに適用されます。
ビューは仮想テーブルです。データを含むテーブルとは異なり、ビューには使用時にデータを動的に取得するクエリのみが含まれます。
ビューを理解する最良の方法は、例を見ることです:
入力:
select cust_name ,cust_contact from customers,orders,orderitems where customers.cust_id = orders.cust_id and orderutems.order_num = order.orders.order_num and prod_id = 'TNT2';
このクエリは、特定の製品を注文した顧客を取得するために使用されます。このデータを必要とする人は、関連するテーブルの構造を理解し、クエリを作成してテーブルを結合する方法を知っている必要があります。他の製品 (または複数の製品) の同じデータを取得するには、最後の WHERE 句を変更する必要があります。 ここで、クエリ全体を productcustomers という仮想テーブルにラップできれば、次のように同じデータを簡単に取得できます:
「
select cust_name ,cust_contact from productcustomers where prod_id = 'TNT2';
」と入力します。これがビューの目的です。 productcustomers はビューであり、ビューとして、テーブル内にあるはずの列やデータは含まれておらず、SQL クエリ (テーブルを正しく結合するために上記で使用されているのと同じクエリ) が含まれています。
ビューを使用する理由
ビューのアプリケーションの例を見てきました。以下に、ビューの一般的な用途をいくつか示します。
1. SQL ステートメントを再利用します。
2. 複雑な SQL 操作を簡素化します。クエリを作成した後は、その基礎となるクエリの詳細を知らなくても、簡単に再利用できます。
3. テーブル全体ではなく、テーブルのコンポーネントを使用します。
4. データを保護します。ユーザーには、テーブル全体ではなく、テーブルの特定の部分へのアクセスを許可できます。
5. データ形式と表現を変更します。ビューは、基になるテーブルとは異なる形式で表現されたデータを返すことがあります。
ビューを作成した後は、基本的にテーブルと同じ方法で使用できます。ビューに対する SELECT 操作の実行、データのフィルターと並べ替え、ビューと他のビューまたはテーブルの結合、さらにはデータの追加と更新を行うことができます (データの追加と更新には一定の制限があります。これについては後で詳しく説明します)。
ビューは、別の場所に保存されているデータを表示するための単なる機能であることを理解しておくことが重要です。ビュー自体にはデータが含まれていないため、ビューが返すデータは他のテーブルから取得されます。これらのテーブルのデータを追加または変更すると、ビューは変更されたデータを返します。
パフォーマンスの問題 ビューにはデータが含まれていないため、ビューが使用されるたびに、クエリの実行に必要な取得を処理する必要があります。複数の結合とフィルターを含む複雑なビュー、またはネストされたビューを作成すると、パフォーマンスが大幅に低下する場合があります。したがって、多数のビューを使用するアプリケーションをデプロイする前に、テストする必要があります。
ビューの使用
ビューとは何か (およびビューを管理するルールと制約) を理解した後、ビューの作成を見てみましょう。
1. ビューは CREATE VIEW ステートメントを使用して作成されます。
2. SHOW CREATE VIEW viewname を使用して、ビューを作成するステートメントを表示します。
3. DROP を使用してビューを削除します。構文は DROP VIEW viewname; です。
4. ビューを更新するときは、最初に DROP を使用してから CREATE を使用することも、CREATE ORREPLACE VIEW を直接使用することもできます。更新するビューが存在しない場合は、2 番目の update ステートメントによってビューが作成され、更新されるビューが存在する場合は、2 番目の update ステートメントによって元のビューが置き換えられます。
ビューのルールと制限事項
ビューの作成と使用に関する最も一般的なルールと制限事項をいくつか示します。
1. テーブルと同様に、ビューには一意の名前を付ける必要があります (ビューに他のビューやテーブルと同じ名前を付けることはできません)。
2. 作成できるビューの数に制限はありません。
3. ビューを作成するには、十分なアクセス権が必要です。これらの制限は通常、データベース管理者によって付与されます。
4. ビューはネストできます。つまり、他のビューからデータを取得するクエリを使用してビューを構築できます。
5.ORDER BYはビュー内で使用できますが、ビューからデータを取得するSELECTにORDER BYも含まれている場合、ビュー内のORDER BYは上書きされます。
6. ビューにはインデックスを付けることはできず、トリガーやデフォルト値を関連付けることはできません。
7. ビューはテーブルとともに使用できます。たとえば、テーブルとビューを結合する SELECT ステートメントを作成します。
以上がmysql ビューの概要、それらが使用される理由、そのルールと制限事項の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。