序文: MySQL では、ビューはおそらく最も一般的に使用されるデータベース オブジェクトの 1 つです。では、ビューとテーブルの違いはご存知ですか?ビューを作成および使用するときに注意すべき点をご存知ですか?ビューについて表面的な理解しかしていない人も多いかもしれません。ビューについて詳しく知りたい場合は、こちらの記事をお読みください。この記事では、ビューの概念、作成、使用方法を詳しく紹介します。 1. 定義と簡単な紹介を見る ビューは、SQL ステートメントの結果セットに基づいて視覚化されたテーブルです。つまり、ビューは、テーブルのレコードのすべてまたは一部を含むことができる仮想テーブルであり、1 つ以上のテーブルから作成することもできます。ビューを使用すると、データ テーブル内のすべてのデータを表示する必要はなく、必要なデータのみを取得できます。ビューを作成すると、実際にはデータベースで SELECT ステートメントが実行されます。SELECT ステートメントには、ユーザーにデータを表示するためのフィールド名、関数、演算子が含まれています。 ビュー内のデータは元のテーブルのデータに依存しているため、元のテーブルのデータが変更されると、表示されるビューのデータも変更されます。たとえば、データ テーブルにデータを挿入した場合、ビューを表示すると、同じデータがビューにも挿入されていることがわかります。ビューは実際には、事前定義されたクエリの形式のテーブルで構成されます。 2. ビューの作成と使用 ビューの標準構文を作成します。 作成する [または置換] [アルゴリズム = {未定義 | マージ | テンプテーブル}] [定義者 = ユーザー] [SQL セキュリティ { 定義者 | 呼び出し者 }] VIEW ビュー名 [(列リスト)] AS 選択ステートメント [[カスケード | ローカル] チェック オプションあり] 文法解釈: 1) OR REPLACE: 既存のビューを置き換えることを意味します。ビューが存在しない場合は、CREATE OR REPLACE VIEW は CREATE VIEW と同じです。 2) ALGORITHM: ビュー選択アルゴリズムを示します。デフォルトのアルゴリズムは UNDEFINED (未定義) です。MySQL は、merge merge; temptable 一時テーブルを使用するアルゴリズムを自動的に選択します。通常、このパラメータは明示的に指定されません。 3) DEFINER: ビューの作成者または定義者が誰であるかを示します。このオプションが指定されていない場合は、ビューを作成したユーザーが定義者になります。 4) SQL セキュリティ: SQL セキュリティ、デフォルトは DEFINER 5) select_statement: 基本テーブルまたは他のビューから選択できる選択ステートメントを表します。 6) CHECK OPTION 付き: ビューが更新時に制約を保証することを示します。デフォルトは CASCADED です。 実際、毎日ビューを作成する場合、各パラメータを指定する必要はありません。一般的には、次のようにビューを作成することをお勧めします。 ビューを作成 <ビュー名> [(列リスト)] チェック オプション付きの SELECT ステートメントとして; 具体的な作成例をいくつか挙げます。 # 単一テーブルビュー mysql> create view v_F_players(number, name, gender, phone number) -> として -> PLAYERSからPLAYERNO、NAME、SEX、PHONENOを選択 -> SEX='F'の場合 -> チェックオプション付き; クエリは正常、影響を受けた行は 0 行 (0.00 秒) mysql> desc v_F_players; +--------+----------+------+------+--------+-------+ | フィールド | タイプ | Null | キー | デフォルト | 追加 | +--------+----------+------+------+--------+-------+ | 数値 | int(11) | NO | | NULL | | | 名前 | char(15) | NO | | NULL | | | 性別 | char(1) | NO | | NULL | | | 電話| char(13) | はい | | NULL | | +--------+----------+------+------+--------+-------+ セット内の 4 行 (0.00 秒) mysql> v_F_players から * を選択します。 +--------+-----------+---------+------------+ | ID| 名前| 性別| 電話番号| +--------+-----------+---------+------------+ | 8 | ニューカッスル | F | 070-458458 | | 27 | コリンズ | F | 079-234857 | | 28 | コリンズ | F | 010-659599 | | 104 | ムーアマン | F | 079-987571 | | 112 | ベイリー | F | 010-548745 | +--------+-----------+---------+------------+ セット内の 5 行 (0.02 秒) # マルチテーブルビュー mysql> create view v_match -> として -> a.PLAYERNO、a.NAME、MATCHNO、WON、LOST、c.TEAMNO、c.DIVISION を選択 -> から -> プレイヤー a、試合 b、チーム c -> ここで、a.PLAYERNO=b.PLAYERNO かつ b.TEAMNO=c.TEAMNO です。 クエリは正常、影響を受けた行は 0 行 (0.03 秒) mysql> v_match から * を選択します。 +----------+-----------+----------+---------+---------+----------+----------+ | プレーヤー番号 | 名前 | 試合番号 | 勝利 | 敗北 | チーム番号 | 部門 | +----------+-----------+----------+---------+---------+----------+----------+ | 6 | パーメンター | 1 | 3 | 1 | 1 | 最初 | | 44 | ベイカー | 4 | 3 | 2 | 1 | 1位 | | 83 | 希望 | 5 | 0 | 3 | 1 | 最初 | | 112 | ベイリー | 12 | 1 | 3 | 2 | 2位 | | 8 | ニューカッスル | 13 | 0 | 3 | 2 | 2位 | +----------+-----------+----------+---------+---------+----------+----------+ セットに5行(0.04秒) ビューは、基本テーブルと同じ方法で使用されます。たとえば、select * from view_name または select * from view_name where ... を使用できます。ビューでは、不要なデータをフィルター処理し、関連する列名をカスタム列名に置き換えることができます。アクセス インターフェイスとしてのビューでは、ベース テーブルのテーブル構造やテーブル名がどれほど複雑であるかは関係ありません。通常、ビューはクエリにのみ使用されます。ビュー自体にはデータがありません。そのため、ビューに対する DML 操作は最終的にベース テーブルに反映されます。ビューが削除、更新、または挿入されると、元のテーブルも更新されます。ビューが削除されても、元のテーブルは変更されません。ビューを切り捨てることはできません。ただし、一般的にはビューの更新は避けるべきであり、DML 操作によって元のテーブルを直接更新できます。 3. ビューのベストプラクティス 以下は、ビューの利点の簡単な紹介です。これらの利点を通じて、ビューの適用可能なシナリオを簡単にまとめることができます。 1) シンプル: ビューを使用するユーザーは、対応するテーブルの構造、結合条件、フィルター条件を気にする必要がありません。ユーザーにとって、結果セットは複合条件によって既にフィルター処理されています。 2) セキュリティ: ビューを使用するユーザーは、クエリを許可された結果セットにのみアクセスできます。テーブルの権限管理は特定の行または列に制限することはできませんが、ビューを使用すると簡単に実現できます。 3) データの独立性: ビューの構造が決定されると、テーブル構造の変更がユーザーに与える影響を遮断できます。ソース テーブルに列を追加しても、ビューには影響しません。ソース テーブルで列名が変更された場合は、訪問者に影響を与えることなくビューを変更することで解決できます。 つまり、ほとんどの場合、ビューはデータのセキュリティを確保し、クエリの効率を向上させるために使用されます。たとえば、複数のテーブルの関連付け結果を頻繁に使用する場合は、ビューを使用してそれらを処理できます。または、サードパーティのプログラムがビジネス ライブラリを呼び出す必要がある場合は、サードパーティのプログラムがクエリを実行するためにオンデマンドでビューを作成できます。 ビューを日常的に使用および保守する過程で、参考までに次のプラクティスをまとめました。
要約: MySQL ではビューがよく使用されます。この記事では、ビューの概念と作成方法を紹介します。また、ビューの使用シナリオと利点についても説明します。ビューとテーブルを使用するときには、その違いを感じないかもしれませんが、実際には多くのトリックが関係しています。ビューはクエリにのみ使用することをお勧めします。仕様に従えば、ビューは非常に便利です。この記事がお役に立てば幸いです。 上記はMySQLビューの詳細分析です。MySQLビューの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Ubuntu での CUDA と CUDNN のインストールとアンインストールの実装
目次1. JavaScriptの基礎2. 基本的なJavaScript構文3. JavaScript...
これは非常にシンプルな純粋な CSS3 の白い雲の浮遊する背景効果です。浮かぶ白い雲の特殊効果は、C...
目次コードの実行に長い時間がかかる場合はどうなりますか? Axiosにはタイムアウト処理機能が搭載さ...
エフェクト表示: 環境準備コントローラーノード: 6GB 4時間60GB/30GB/30GB計算ノー...
Java開発キットjdkをダウンロードするJDK のダウンロード アドレスはhttp://www.o...
目次1. 証明書を生成する2. リモートを有効にする3. リモート接続3.1 Jenkins接続3....
VMwareaのインストールプロセスは説明しませんが、主にwin7イメージをロードする方法を説明しま...
1. 以前のバージョン yum 削除 docker docker-client docker-cli...
目次JavaScript で配列を作成する配列の使用配列を分割文字列に変換する配列に要素を追加する配...
この記事では、Taobao商品詳細のカルーセルを実現するためのvideojs+swiperの具体的な...
この記事では、MySQL 8.0.15 winx64 圧縮パッケージのインストールと設定方法を参考ま...
1. 概要Zabbix は非常に強力で、最も広く使用されているオープンソースの監視ソフトウェアです。...
目次レスト演算子とは何ですか? JavaScript 関数では REST 演算子はどのように機能しま...
サーバーも 2 つあります。準備:コンテナのホスト名を設定する consul: kv タイプのストレ...
この記事では、チャット機能を実現するためのVue+express+Socketの具体的なコードを参考...