MySQL テーブルと列のコメントの概要

MySQL テーブルと列のコメントの概要

コードと同様に、テーブルや列にコメントを追加して、他のユーザーがその機能を理解できるようにすることができます。一部のフィールドでは、作成者が一定期間後にその特定の意味を思い出せなくなる可能性があるため、注釈は特に重要です。

コメントの追加<br /> コメントは、テーブルまたは列定義の末尾に COMMENT キーワードを追加することで追加されます。サポートされる最大長は 1024 文字です。

テーブルを作成するときに、テーブルと列に対応するコメントを追加できます。

テーブル test_comment を作成する 
 ( 
   id シリアルプライマリキー、 
   col1 INT コメント '列コメント' 
 ) 
comment 'テーブルに関するコメント';

上記のステートメントを実行すると、test_comment という名前のテーブルが作成され、テーブルと col1 列に対応するコメントが指定されます。

その後、SHOW CREATE TABLE <table_name> を通じてそれを表示できます。

mysql> SHOW CREATE TABLE test_comment\G
************************** 1. 行 ****************************
    テーブル: test_comment
テーブルの作成: CREATE TABLE `test_comment` (
 `id` bigint(20) 符号なし NOT NULL AUTO_INCREMENT,
 `col1` int(11) DEFAULT NULL COMMENT '列コメント',
 主キー (`id`)、
 ユニークキー `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='テーブルコメント'
セット内の 1 行 (0.00 秒)

コメントを表示

SHOW CREATE TABLE <table_name> 構文に加えて、コメントを表示する他の方法もあります。

SHOW TABLE STATUS はテーブルのコメントを表示できます。構文は次のとおりです。

SHOW TABLE STATUS WHERE name='table_name';
SHOW TABLE STATUS で表示した結果は次のとおりです。

mysql> SHOW TABLE STATUS WHERE name='test_comment'\G
************************** 1. 行 ****************************
      名前: test_comment
     エンジン: InnoDB
    バージョン: 10
   行形式: 動的
      行数: 0
 平均行長: 0
  データ長: 16384
最大データ長: 0
  インデックスの長さ: 16384
   データ空き容量: 0
 自動増分: 1
  作成時間: 2019-05-11 15:41:01
  更新時間: NULL
   チェック時間: NULL
   照合: utf8mb4_general_ci
    チェックサム: NULL
 作成オプション:
    コメント: セット内のテーブル 1 行のコメント (0.00 秒)

列のコメントは、SHOW FULL COLUMNS を通じて表示できます。構文は次のとおりです。

<テーブル名> から全列を表示

以下は、SHOW FULL COLUMNS を使用して表示した結果です。

mysql>test_comment\G から全列を表示
************************** 1. 行 ****************************
   フィールド: id
   型: bigint(20) unsigned
 照合: NULL
   ヌル: いいえ
    キー: PRI
  デフォルト: NULL
   追加: auto_increment
権限: 選択、挿入、更新、参照
  コメント:
************************** 2. 行 ****************************
   フィールド: col1
   タイプ: int(11)
 照合: NULL
   ヌル: はい
    鍵:
  デフォルト: NULL
   余分な:
権限: 選択、挿入、更新、参照
  コメント: 列コメント 2 行セット (0.00 秒)

テーブルまたは列のコメントは、INFORMATION_SCHEMA のテーブルを使用して表示することもできます。

たとえば、次の表のコメントを表示します。

テーブルコメントを選択 
information_schema.tables から 
ここで、table_name = 'test_comment';

実行結果:

mysql> テーブルコメントを選択
  -> information_schema.tables から
  -> WHERE table_name = 'test_comment';
+---------------+
| テーブルコメント |
+---------------+
| 表の注記 |
+---------------+
セット内の1行(0.01秒)

列のコメントを表示します。

SELECT列コメント 
information_schema.columns から 
ここで、列名 = 'col1';

実行結果:

mysql> SELECT 列コメント
  -> information_schema.columns から
  -> WHERE 列名 = 'col1';
+----------------+
| コラムコメント |
+----------------+
| コラムノート |
+----------------+
セット内の 1 行 (0.00 秒)

コメントの更新<br /> 既存のテーブルと列に対して、対応する更新および変更操作を実行することでコメントを追加できます。

コラムコメントの追加と更新
CHANGE と MODIFY は同等ですが、違いは、CHANGE は列定義を書き換えるため、列を変更しない場合でも新しい列名を含む完全な列定義を記述する必要があるのに対し、MODIFY では新しい列名の指定が必要ないことです。

CHANGE 構文経由:

mysql> ALTER TABLE test_comment CHANGE col1 col1 INT COMMENT '列コメント2';
クエリは正常、影響を受けた行は 0 行 (0.02 秒)
レコード: 0 重複: 0 警告: 0

MODIFY 構文経由:

mysql> ALTER TABLE test_comment MODIFY col1 INT COMMENT '列コメント2';
クエリは正常、影響を受けた行は 0 行 (0.02 秒)
レコード: 0 重複: 0 警告: 0

変更結果を表示します:

mysql> SHOW CREATE TABLE test_comment\G
************************** 1. 行 ****************************
    テーブル: test_comment
テーブルの作成: CREATE TABLE `test_comment` (
 `id` bigint(20) 符号なし NOT NULL AUTO_INCREMENT,
 `col1` int(11) DEFAULT NULL COMMENT '列コメント2',
 主キー (`id`)、
 ユニークキー `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='テーブルコメント'
セット内の 1 行 (0.00 秒)

テーブルコメントの追加と更新は、ALTER TABLE を通じて行われます。

mysql> ALTER TABLE test_comment comment 'テーブルコメント2';
クエリは正常、影響を受けた行は 0 行 (0.01 秒)
レコード: 0 重複: 0 警告: 0

更新結果を表示します:

mysql> SHOW CREATE TABLE test_comment\G
************************** 1. 行 ****************************
    テーブル: test_comment
テーブルの作成: CREATE TABLE `test_comment` (
 `id` bigint(20) 符号なし NOT NULL AUTO_INCREMENT,
 `col1` int(11) DEFAULT NULL COMMENT '列コメント2',
 主キー (`id`)、
 ユニークキー `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='テーブルコメント 2'
セット内の 1 行 (0.00 秒)

コメントの削除<br /> コメントを更新する場合は、空を指定するだけです。

mysql> ALTER TABLE test_comment COMMENT '';
クエリは正常、影響を受けた行は 0 行 (0.01 秒)
レコード: 0 重複: 0 警告: 0

mysql> ALTER TABLE test_comment MODIFY col1 INT COMMENT '';
クエリは正常、影響を受けた行は 0 行 (0.01 秒)
レコード: 0 重複: 0 警告: 0

削除結果を表示します:

mysql> SHOW CREATE TABLE test_comment\G
************************** 1. 行 ****************************
    テーブル: test_comment
テーブルの作成: CREATE TABLE `test_comment` (
 `id` bigint(20) 符号なし NOT NULL AUTO_INCREMENT,
 `col1` int(11) デフォルト NULL,
 主キー (`id`)、
 ユニークキー `id` (`id`)
) エンジン=InnoDB デフォルト文字セット=utf8mb4 照合=utf8mb4_general_ci
セット内の 1 行 (0.00 秒)

以下もご興味があるかもしれません:
  • あるテーブルのデータの列を別のテーブルの列にコピーするMySQLメソッド
  • MySQL FAQ シリーズ: 一時テーブルを使用する場合
  • SqlクエリMySqlデータベーステーブル名と説明テーブルフィールド(列)情報
  • Java+MySQLの再帰を使用してツリー型のJSONリストを連結する方法の例
  • Mysql テーブル、列、データベースの追加、削除、変更、クエリの問題の概要
  • Python モジュール pymysql の結果をクエリした後にフィールド リストを取得する方法
  • 指定フィールドによるMySQLカスタムリストのソートの実装

<<:  VMware に CentOS7 をインストールし (静的 IP アドレスを設定)、Docker コンテナ経由で mySql データベースをインストールする (非常に詳細なチュートリアル)

>>:  webpackでHMRを手動で実装するいくつかの方法

推薦する

Nginx でファイル ホットリンク保護サービスを構築する方法を学ぶ例

序文多くのサイトが、ポイントやゴールドコインなど、情報のダウンロードに料金を請求していることは誰もが...

XHTML言語のデフォルトCSSスタイル

html、アドレス、引用ブロック、本文、dd、div、 dl、dt、フィールドセット、フォーム、フレ...

VMware Workstation Pro でサーバー仮想マシンを構築する (グラフィック チュートリアル)

私が使用している VMware Workstation Pro のバージョンは次のとおりです。 1....

div間のギャップの解決策

HTMLのdivブロックを使用していて、ブロックの中央をしっかりと接続できず、解決できない場合1. ...

JavaScript 配列と非配列オブジェクトのディープ クローンとシャロー クローンの原則の詳細な説明

目次シャロークローニングとディープクローニングとは何ですか? 1. アレイのクローンを作成する1.1...

MySQL Innodbインデックスの原理の詳細な説明

導入振り返ってみると、4年前、私がMySQLのインデックスについて学んでいたとき、先生はインデックス...

CentOS 7 に Docker 1.8 をインストールする詳細な手順

Docker は、次の CentOS バージョンでの実行をサポートしています。 • CentOS 7...

Nginx 構成 クロスドメイン リクエスト Access-Control-Allow-Origin * 詳細な説明

序文403 クロスオリジン エラーが発生しNo 'Access-Control-Allow-...

アプレットにおけるwx.getUserProfileインターフェースの具体的な使用

最近、WeChatミニプログラムは、監査ミニプログラムのwx.loginおよびwx.getUserI...

MySQL 最適化技術における Limit クエリの最適化分析

序文実際のビジネスでは、ページングは​​一般的なビジネス要件です。次に、制限クエリを使用します。制限...

シェルスクリプトによるDockerコンテナの起動順序の制御の詳細な説明

1. 遭遇した問題分散プロジェクトの展開プロセスでは、サーバーの再起動後にアプリケーション(データベ...

Docker-compose を使用して Django アプリケーションをオフラインでデプロイする方法

目次開発環境用のDocker-ceをインストールする開発環境用のDocker-composeをインス...

CSS を使用して 3 列のアダプティブ レイアウト (両側は固定幅、中央はアダプティブ) を実現します。

いわゆる 3 列適応レイアウトとは、両側の幅が固定され、中央のブロックの幅が適応されることを意味しま...

React Nativeでaxiosを使用してネットワークリクエストを行う方法

フロントエンド開発では、Ajax、jQuery ajax、axios、fetch など、データ要求を...

現在のブラウザが JavaScript でヘッドレス ブラウザであるかどうかを検出する方法

目次ヘッドレスブラウザとは何ですか?なぜ「ヘッドレス」ブラウザと呼ばれるのでしょうか?ヘッドレスブラ...