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 マスタースレーブレプリケーションスレッドの状態遷移に関する詳細な理解

序文MySQL マスター スレーブ レプリケーションの基本原理は、スレーブ データベースがマスター ...

nginx アンチホットリンクおよびアンチクローラー設定の詳細な説明

新しい設定ファイルを作成します (たとえば、nginx インストール ディレクトリの下の conf ...

MySQL 同期遅延が発生したときに Seconds_Behind_Master が 0 のままになる理由

目次問題の説明原理分析問題分析拡大する総括する問題の説明ユーザーはプライマリ データベースに対して変...

Redhat 8.0 システムのインストール方法に関するグラフィック チュートリアル (初心者には必須)

目次1. はじめに2. インストール01. 新しい仮想マシンを作成する02. システムをインストール...

HTML で js を使用してローカル システム時間を取得する

コードをコピーコードは次のとおりです。 <div id="名前"> ...

Zabbix を使用して Oracle データベースを監視する方法の詳細な説明

1. 概要Zabbix は非常に強力で、最も広く使用されているオープンソースの監視ソフトウェアです。...

Docker Compose を使用して Confluence を構築するチュートリアル

この記事は「Attribution 4.0 International (CC BY 4.0)」ライ...

ユーザーのニーズがマーケティング指向のデザインにつながる

<br />それぞれのトピックについて、チーム内でメールで議論します。議論が白熱するにつ...

Windows システム mysql5.7.18 インストール グラフィック チュートリアル

Windows システム向け MySQL インストール チュートリアルダウンロード1. https:...

Nginx リバース プロキシ構成の完全なプロセス記録

1. 準備LinuxシステムにTomcatをインストールし、デフォルトのポート8080を使用してTo...

HTML における iFrame タグの 2 つの使用法

最近、私は「ぶどうコレクション」というプロジェクトに取り組んでいます。簡単に言うと、Budou ペー...

Docker は固定コンテナ IP アドレスを実現するためにカスタム ネットワークを作成します。

デフォルトのブリッジ ネットワークのため、コンテナーを再起動すると IP アドレスが変更されます。シ...

Mac で docker と kubectl の自動補完コマンドを追加する方法

kubectl の紹介kubectl は、k8s クラスターを操作するためのコマンドライン ツールで...

JavaScript での AOP プログラミングの基本実装

AOP の紹介AOP (アスペクト指向プログラミング) の主な機能は、コアビジネスロジックモジュール...

Vueエンジニアがカプセル化しなければならない埋め込み命令の知識のまとめ

目次序文指導の基本フック機能フック関数のパラメータ文章使い方とアイデア成し遂げる汎用性を高める要約す...