ビューを使用して複雑な結合を簡素化する
ビューの最も一般的な用途の 1 つは、通常結合を伴う複雑な SQL を非表示にすることです。次の例を考えてみましょう:
入力:
create view productcustomers as select cust_name,cust_contact,prod_id from customers,orders,orderitems where customers.cust_id = orders.cust_id and orderitems.order_num = orders.order_num;
分析: このステートメントは、3 つのテーブルを結合して製品を注文したすべての顧客のリストを返す productcustomers というビューを作成します。 SELECT * FROM productcustomers を実行すると、任意の製品を注文した顧客がリストされます。
製品 TNT2 を注文した顧客を取得するには、次の手順を実行します:
入力:
select cust_name,cust_contact from productstomers where prod_id = 'TNT2';
出力:
分析: このステートメントは、WHERE 句を通じてビューから特定のデータを取得します。 MySQL はこのクエリを処理するときに、データが正しくフィルタリングされるように、指定された WHERE 句をビュー クエリ内の既存の WHERE 句に追加します。
ビューを使用すると、複雑な SQL ステートメントの使用が大幅に簡素化されることがわかります。ビューを使用すると、基本的な SQL を一度作成すれば、それを必要に応じて何度でも使用できます。
再利用可能なビューを作成する 特定のデータに制限されないビューを作成することをお勧めします。たとえば、上で作成したビューは、TNT2 を製造する顧客だけでなく、すべての製品を製造する顧客を返します。ビューのスコープを拡張すると、ビューが再利用可能になるだけでなく、さらに便利になります。そうすることで、複数の同様のビューを作成して維持する必要がなくなります。
ビューを使用して取得したデータを再フォーマットする
前述したように、ビューのもう 1 つの一般的な用途は、取得したデータを再フォーマットすることです。次の SELECT ステートメントは、サプライヤーの名前と場所を単一の結合された計算列で返します。
入力:
select concat(rtrim(vend_name),'(',rtrim(vend_country), ')') as vend_title from vendors order by vend_name;
出力:
さて、この形式の結果が頻繁に必要になるとします。必要になるたびに結合を実行するのではなく、ビューを作成し、必要なときにそれを使用します。このステートメントをビューに変換するには、次の手順を実行します。
入力:
create view vendorlocation as select concat(rtrim(vend_name),'(',rtrim(vend_country), ')') as vend_title from vendors order by vend_name;
分析: このステートメントは、前の SELECT ステートメントと同じクエリを使用してビューを作成します。すべての宛名ラベルを作成するためのデータを取得するには、次の手順を実行します。
入力:
select * from vendorlocations;
出力:
以上がMySQL ビューの役割の詳細説明 (1) - 複雑な接続の簡素化と取得したデータのフォーマットの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。