MySQLビューの役割を詳しく解説(2) ~データのフィルタリング、フィールドの計算、ビューの更新~
ビューを使用して不要なデータをフィルタリングする
ビューは、通常の WHERE 句を適用するのにも役立ちます。たとえば、電子メール アドレスのない顧客をフィルターする customeremaillist ビューを定義できます。この目的のために、次のステートメントを使用できます:
入力:
create view customeremaillist as select cust_id,cust_name,cust_email from customers where cust_email is not null;
分析: 明らかに、メーリング リストに電子メールを送信するときは、電子メール アドレスを持たないユーザーを除外する必要があります。ここの WHERE 句は、cust_email 列に NULL 値を含む行をフィルタリングして、それらの行が取得されないようにします。
これで、ビュー customeremaillist を他のテーブルと同様に使用できるようになりました。
入力:
select * fromcustomeremaillist;
出力:
WHERE 句と WHERE 句 ビューからデータを取得するときに WHERE 句が使用される場合、2 つの句セット (1 つはビュー内にあり、もう 1 つは ) が渡されます。ビューに自動的に結合されます。
計算フィールドでのビューの使用
ビューは、計算フィールドの使用を簡素化するのに特に役立ちます。以下は第 10 章で紹介された SELECT ステートメントです。特定の順序でアイテムを取得し、各アイテムの合計価格を計算します:
入力:
select prod_id,quantity,item_price,quantity*item_price as expanded_price from orderitems where order_num = 20005;
出力:
ビューに変換するには、次の手順を実行します:
入力:
create view orderitemsexpanded as select prod_id,quantity,item_price,quantity*item_price as expanded_price from orderitems;
Toオーダー 20005 の詳細 (上記の出力) を取得するには、次のように進めます:
入力:
select * from orderitemsexpanded where order_num = 20005;
出力:
ご覧のとおり、ビューは非常に簡単に作成でき、使いやすいです。ビューを正しく使用すると、複雑なデータ処理を大幅に簡素化できます。
ビューの更新
これまでのビューはすべて SELECT ステートメントで使用されています。ただし、ビューのデータは更新できますか?答えは状況によって異なります。
通常、ビューは更新可能です (つまり、ビューに対して INSERT 、 UPDATE 、および DELETE を使用できます)。ビューを更新すると、そのベース テーブルが更新されます (ビュー自体にはデータがないことを思い出してください)。ビューに行を追加または削除すると、実際にはそのベーステーブルに行が追加または削除されます。
ただし、すべてのビューが更新できるわけではありません。基本的に、MySQL が更新されるベース データを正しく判断できない場合、更新 (挿入と削除を含む) は許可されないと言えます。これは、実際には、ビュー定義に次の操作がある場合、ビューを更新できないことを意味します:
2. 結合 (GROUP BY および HAVING を使用); 3. サブクエリ。そして;
5. 集計関数 (Min()、Count()、Sum() など);
6.DISTINCT;
言い換えれば、この章の例の多くのビューは更新可能ではありません。これは重大な制限のように聞こえるかもしれませんが、ビューは主にデータの取得に使用されるため、そうではありません。
考えられる変更点 上記の制限事項は、MySQL 5 の時点で正しいものです。ただし、MySQL の将来のバージョンでは、いくつかの制限が解除される可能性があります。
取得にはビューを使用する 一般に、ビューは更新 (INSERT、UPDATE、DELETE) ではなく取得 (SELECT ステートメント) に使用する必要があります。
概要:
View は仮想テーブルです。これらにはデータではなく、必要に応じてデータを取得するためのクエリが含まれています。ビューは、データ処理を簡素化し、基になるデータを再フォーマットまたは保護するために使用できる MySQL SELECT ステートメントの階層的なカプセル化を提供します。
以上がMySQLビューの役割を詳しく解説(2) ~データのフィルタリング、フィールドの計算、ビューの更新~の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事では、MySQLのAlter Tableステートメントを使用して、列の追加/ドロップ、テーブル/列の名前の変更、列データ型の変更など、テーブルを変更することについて説明します。

INNODBのフルテキスト検索機能は非常に強力であり、データベースクエリの効率と大量のテキストデータを処理する能力を大幅に改善できます。 1)INNODBは、倒立インデックスを介してフルテキスト検索を実装し、基本的および高度な検索クエリをサポートします。 2)一致を使用してキーワードを使用して、ブールモードとフレーズ検索を検索、サポートします。 3)最適化方法には、単語セグメンテーションテクノロジーの使用、インデックスの定期的な再構築、およびパフォーマンスと精度を改善するためのキャッシュサイズの調整が含まれます。

記事では、証明書の生成と検証を含むMySQL用のSSL/TLS暗号化の構成について説明します。主な問題は、セルフ署名証明書のセキュリティへの影響を使用することです。[文字カウント:159]

記事では、MySQLワークベンチやPHPMyAdminなどの人気のあるMySQL GUIツールについて説明し、初心者と上級ユーザーの機能と適合性を比較します。[159文字]

記事では、MySQLで大規模なデータセットを処理するための戦略について説明します。これには、パーティション化、シャード、インデックス作成、クエリ最適化などがあります。

この記事では、ドロップテーブルステートメントを使用してMySQLのドロップテーブルについて説明し、予防策とリスクを強調しています。これは、バックアップなしでアクションが不可逆的であることを強調し、回復方法と潜在的な生産環境の危険を詳述しています。

MySQLは、Bツリー、ハッシュ、フルテキスト、および空間の4つのインデックスタイプをサポートしています。 1.B-Treeインデックスは、等しい値検索、範囲クエリ、ソートに適しています。 2。ハッシュインデックスは、等しい値検索に適していますが、範囲のクエリとソートをサポートしていません。 3.フルテキストインデックスは、フルテキスト検索に使用され、大量のテキストデータの処理に適しています。 4.空間インデックスは、地理空間データクエリに使用され、GISアプリケーションに適しています。

この記事では、クエリパフォーマンスを強化するために、PostgreSQL、MySQL、MongoDBなどのさまざまなデータベースでJSON列にインデックスの作成について説明します。特定のJSONパスのインデックス作成の構文と利点を説明し、サポートされているデータベースシステムをリストします。
