MySQL ビュー管理ビューの例の詳細説明 [追加、削除、変更、クエリ操作]

MySQL ビュー管理ビューの例の詳細説明 [追加、削除、変更、クエリ操作]

この記事では、例を使用して MySQL ビューの管理ビュー操作について説明します。ご参考までに、詳細は以下の通りです。

MySQL は、ビュー定義を表示するための SHOW CREATE VIEW ステートメントを提供します。構文構造を見てみましょう。

SHOW CREATE VIEW [データベース名].[ビュー名];

ビュー定義を表示するには、SHOW CREATE VIEW 句の後にビューの名前を指定する必要があります。まず、会社の組織構造を表示する従業員テーブルに基づく簡単なビューを作成し、それをデモンストレーションしてみましょう。

CREATE VIEW組織AS
  選択 
    CONCAT(E.lastname, E.firstname) AS 従業員、
    CONCAT(M.lastname, M.firstname) AS マネージャー
  から
    従業員 AS E
      内部結合
    従業員 AS M ON M.employeeNumber = E.ReportsTo
  ORDER BY マネージャー;

上記のビューからデータをクエリすると、次の結果が得られます。

mysql> SELECT * FROM 組織;
+------------------+------------------+
| 従業員 | マネージャー |
+------------------+------------------+
| ボンドゥール・ルイ | ボンドゥール・ジェラール |
| カスティージョパメラ | ボンドゥールジェラール |
| ジョーンズ・バリー | ボンドゥール・ジェラール |
| ヘルナンデスジェラール | ボンドゥールジェラール |
.......ここでは多くのデータが省略されています.......
| 加藤よしみ | 西真美 |
| キングトム | パターソンウィリアム |
| マーシュピーター | パターソンウィリアム |
| FixterAndy | パターソンウィリアム |
+------------------+------------------+
24行セット

ビューの定義を表示するには、次のように SHOW CREATE VIEW ステートメントを使用します。

SHOW CREATE VIEW 組織;

メモ帳などのプレーン テキスト エディターを使用してデータベース フォルダー内のビュー定義ファイルを開き、ビューの定義を表示することもできます。たとえば、組織ビュー定義を開くには、データベース フォルダーの下のデータ フォルダーでデータベース フォルダーを見つけて入力し、ビュー名に応じて .frm ファイルを見つけます。

ALTER VIEW と CREATE OR REPLACE VIEW を使用してビューを変更してみましょう。まず、アラート ビューの構文を見てみましょう。

変更
 [アルゴリズム = {MERGE | TEMPTABLE | 未定義}]
 VIEW [データベース名]. [ビュー名]
  として
 [SELECT文]

次のステートメントは、電子メール列を追加して組織ビューを変更する方法を示しています。

ALTER VIEW組織
 として 
 SELECT CONCAT(E.lastname,E.firstname) AS Employee、
     E.email AS employeeEmail、
     CONCAT(M.lastname,M.firstname) AS マネージャー
 従業員から
 INNER JOIN 従業員 AS M
  ON M.employeeNumber = E.ReportsTo
 ORDER BY マネージャー;

変更を確認するには、組織ビューからデータをクエリします。詳細は説明しません。別の構文構造を見てみましょう。

VIEW v_contacts AS を作成または置換
  選択 
    名、姓、内線番号、メールアドレス
  から
    従業員;
-- ビュー データをクエリします SELECT * FROM v_contacts;

変更するときに、ビューがすでに存在する場合、MySQL はビューのみを変更することに注意してください。ビューが存在しない場合は、MySQL は新しいビューを作成します。さて、上記の SQL 実行の結果を見てみましょう。

+-----------+-----------+------------+--------------------------------+
| 名 | 姓 | 内線番号 | メールアドレス |
+-----------+-----------+------------+--------------------------------+
| ダイアン | マーフィー | x5800 | [email protected] |
| メアリー | ヒル | x4611 | [email protected] |
| ジェフ | フィレッリ | x9273 | [email protected] |
| ウィリアム | パターソン | x4871 | [email protected] |
| ジェラルド | ボンドゥール | x5408 | [email protected] |
| アンソニー | ボウ | x5428 | [email protected] |
| レスリー | ジェニングス | x3291 | [email protected] |
.............. ここでは多くのデータが省略されています..................................
| マーティン | ジェラルド | x2312 | [email protected] |
| リリー | ブッシュ | x9111 | [email protected] |
| ジョン | ミンス | x9112 | [email protected] |
+-----------+-----------+------------+--------------------------------+
25行セット

v_contacts ビューに jobtitle 列を追加するとします。次のステートメントを使用できます。

VIEW v_contacts AS を作成または置換
  選択 
    名、姓、内線番号、メールアドレス、役職
  から
    従業員;
-- ビュー データをクエリします SELECT * FROM v_contacts;

上記のクエリ ステートメントを実行すると、データの列が追加されていることがわかります。

+-----------+-----------+-----------+--------------------------------+-----------------------+
| 名 | 姓 | 内線番号 | メールアドレス | 役職 |
+-----------+-----------+-----------+--------------------------------+-----------------------+
| ダイアン | マーフィー | x5800 | [email protected] | 社長 |
| メアリー | ヒル | x4611 | [email protected] | 営業担当副社長 |
| Jeff | Firrelli | x9273 | [email protected] | マーケティング担当副社長 |
................... ここでは大量のデータが省略されています................................................................
| 吉見 | 加藤 | x102 | [email protected] | 営業担当 |
| マーティン | ジェラルド | x2312 | [email protected] | 営業担当 |
| リリー | ブッシュ | x9111 | [email protected] | IT マネージャー |
| ジョン | ミンス | x9112 | [email protected] | マーケティング担当 SVP |
+-----------+-----------+-----------+--------------------------------+-----------------------+
25行セット

次に、DROP VIEW ステートメントを使用してビューを削除します。まず、構文構造を見てみましょう。

DROP VIEW [存在する場合] [データベース名].[ビュー名]

上記の SQL では、IF EXISTS はステートメントのオプション句であり、これによりビューが存在するかどうかを確認し、存在しないビューを削除するときにエラーを回避できます。完了したら、組織ビューを削除しましょう。

DROP VIEW IF EXISTS組織;

ビューが変更または削除されるたびに、MySQL はビュー定義ファイルを /database_name/arc/ ディレクトリにバックアップすることに注意する必要があります。 誤ってビューを変更または削除した場合は、/database_name/arc/ フォルダーからバックアップを取得できます。

さて、この記録についてはこれですべてです。

MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL トランザクション操作スキル」、「MySQL ストアド プロシージャ スキル」、「MySQL データベース ロック関連スキルの概要」、および「MySQL 共通関数の概要」

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • PHPを使用してMySqlデータベースにアクセスする論理操作と追加、削除、変更、チェックの例
  • PHPは、オブジェクト指向のmysqli拡張ライブラリを実装し、追加、削除、変更、クエリ操作ツールクラスを作成します。
  • PHP MySqlの追加、削除、変更、チェックの簡単な例
  • PHP+MySQLは、シンプルな追加、削除、変更、クエリ機能を実装します。
  • PHP+MYSQLはユーザーの追加、削除、変更、クエリを実装します
  • MySQL の詳細な単一テーブルの追加、削除、変更、クエリの CRUD ステートメント
  • MySQL トリガーの追加、削除、変更、クエリ操作の例
  • MySQLとPHPの基礎と応用: 追加、削除、変更、クエリ

<<:  Dockerデーモンのセキュリティ設定項目の詳細な説明

>>:  Vueの自己ネストツリーコンポーネントの使い方の詳細な説明

推薦する

mysql 10進データ型変換の実装

最近、次のデータ型のデータベースに遭遇しました:decimal(14,4)発生した問題は次のとおりで...

JS上級編ES6の6つの継承方法

目次1. プロトタイプチェーン継承2. コンストラクタによる継承3. 組み合わせ継承4. プロトタイ...

vue-routeルーティング管理のインストールと設定方法

導入Vue Router 、 Vue.jsの公式ルーティング マネージャーです。 Vue.jsのコア...

Vue3 を使用して虫眼鏡効果を実現する方法の例

目次序文1. カプセル化の重要性2. どのようにカプセル化しますか? 1. 準備2. 梱包を開始する...

Nginx リバース プロキシを使用して go-fastdfs を実行する例

背景go-fastdfs は、http プロトコルをサポートする分散ファイルシステムです。一般的なプ...

Vueフォームで画像を処理する方法

質問: Vue にブログ投稿をアップロードするためのフォームがあり、タイトル、本文、説明、スニペット...

フロントエンドコンポーネント化の基礎知識を詳しく解説

目次コンポーネントの基本概念オブジェクトとコンポーネントの違い成分属性属性とプロパティ属性:財産:ク...

既存のDockerコンテナの内容を変更する方法

1. Docker psはコンテナをリストします 2. Docker cpはコンテナにファイルをコピ...

Three.js が Facebook Metaverse 3D ダイナミック ロゴ効果を実現

目次背景メタバースとは何ですか?成果を達成するトライアル 1: THREE.TorusGeometr...

MySQL 8.0 のメモリ消費の詳細な分析

目次1. innodb_buffer_pool_size 2. innodb_log_buffer_...

Vue elementUI フォームのネストされたテーブルと各行の検証の詳細な説明

目次エフェクト表示コードリンクキーコード表形式データコンポーネントのネスト検証方法リセット方法完全な...

Zabbixで電子メールアラートを実装する方法

オンラインチュートリアルに従って実装しました。 zabbix3.4、スクリプトとsendEmailを...

CocosCreatorで複数のタイマーを使用する方法の詳細な説明

1.タイムアウトを設定する3 秒後に abc を印刷します。一度だけ実行します。 setTimeou...

MySQLのパフォーマンスが突然低下する理由

場合によっては、SQL ステートメントが通常どおり、非常に速く実行される状況に遭遇することがあります...

フロントエンドのパフォーマンス最適化を学ぶ準備として、HTMLページのレンダリングプロセスを理解する

現在、フロントエンドのパフォーマンス最適化について学んでいます。適切な解決策を見つけ、パフォーマンス...