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の自己ネストツリーコンポーネントの使い方の詳細な説明

推薦する

Vueのフロントエンドとバックエンドのデータのやり取りと表示を理解する方法

目次1. 技術概要2. 技術的な詳細1. インターフェースからバックエンドデータを取得する2. フロ...

Windows での MySQL 5.7.18 インストール チュートリアル

この記事では、圧縮パッケージから MySQL をインストールする方法について説明します。 1. My...

wgetはウェブサイト全体(サブディレクトリ全体)または特定のディレクトリをダウンロードします

wgetコマンドを使用して、親ディレクトリの下のサブディレクトリ全体をダウンロードします。親ディレク...

MySQLの通常インデックスとユニークインデックスの違いの詳しい説明

目次1 概念上の区別2 事例紹介3 クエリパフォーマンス4 アップデートのパフォーマンス4.1 記憶...

MySQL ユーザーと権限、およびルートパスワードをクラックする方法の例

MySQL ユーザーと権限MySQL には、MySQL と呼ばれるシステムに付属するデータベースがあ...

PHP+nginx サービス 500 502 エラーのトラブルシューティングのアイデアの詳細な説明

概要オンラインサービスへのアクセス中に 500 または 502 エラーが発生した場合、緊急処理とトラ...

MySQL inndbジョイントインデックスを正しく使用する方法を徹底的に理解するためのケーススタディ

最近確認された5件のデータを照会するビジネスがあります。 `id`、`title` を選択 `th_...

Vue3 トランジションアニメーションの落とし穴記録について

目次背景問題の場所さらなる分析要約する背景私のコース「Vue 3 エンタープライズレベルの音楽アプリ...

jQuery タグセレクターの適用例の詳細な説明

この記事では、jQueryタグセレクターアプリケーションの具体的なコードを例として紹介します。具体的...

Linux CentOS でスケジュールされたバックアップ タスクを設定する方法

実装準備 # ファイルパスをバックアップする必要があります: /opt/apollo/logs/ac...

Docker イメージ + nginx を使用して Vue プロジェクトをデプロイする方法

1. Vueプロジェクトのパッケージ化開発されたvueプロジェクトに次の名前を入力し、パッケージ化し...

jsを使ってシンプルなディスククロックを実現する

この記事では、参考までに、シンプルなディスククロックを実装するためのjsの具体的なコードを紹介します...

Linux の 5 ステップ ビルド カーネル ツリー

目次0. システムに付属するカーネルツリー1. 環境設定最初のステップステップ2 2. ソースコード...

CentOS 8 / RHEL 8 に VirtualBox 6.0 をインストールするための詳細なチュートリアル

VirtualBox は、技術者が異なる種類の複数の仮想マシン (VM) を同時に実行できるようにす...