MySQL ビューの役割の詳細説明 (1) - 複雑な接続の簡素化と取得したデータのフォーマット

巴扎黑
リリース: 2017-05-17 16:37:45
オリジナル
3176 人が閲覧しました

ビューを使用して複雑な結合を簡素化する

ビューの最も一般的な用途の 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';
ログイン後にコピー

出力:

MySQL ビューの役割の詳細説明 (1) - 複雑な接続の簡素化と取得したデータのフォーマット

分析: このステートメントは、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;
ログイン後にコピー

出力:

MySQL ビューの役割の詳細説明 (1) - 複雑な接続の簡素化と取得したデータのフォーマット

さて、この形式の結果が頻繁に必要になるとします。必要になるたびに結合を実行するのではなく、ビューを作成し、必要なときにそれを使用します。このステートメントをビューに変換するには、次の手順を実行します。

入力:

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) - 複雑な接続の簡素化と取得したデータのフォーマット

以上がMySQL ビューの役割の詳細説明 (1) - 複雑な接続の簡素化と取得したデータのフォーマットの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート