像代码一样,可以为表以及表中的列添加注释,方便其他人知晓其功能。对于一些字段,在经过一定时间后,创建者未必也能想起其具体的含意,所以注释显得尤为重要。

注释的添加

注释的添加是通过在定义表或列的时候在末尾加上 COMMENT 关键字来实现的,最长支持 1024 个字符。

可以在创建表的时候为表和列添加相应的注释。

CREATE TABLE test_comment ( id   SERIAL PRIMARY KEY, col1 INT comment '列的注释' )
comment '表的注释'; 

执行上面的语句后创建了一个名为 test_comment 的表,并且为表和其中的 col1 列指定了相应的注释。

然后可通过 SHOW CREATE TABLE <table_name> 来查看。

mysql> SHOW CREATE TABLE test_comment\G
*************************** 1. row ***************************Table: test_comment
Create Table: CREATE TABLE `test_comment` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`col1` int(11) DEFAULT NULL COMMENT '列的注释',PRIMARY KEY (`id`),UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表的注释'
1 row in set (0.00 sec)

注释的查看

除了 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. row ***************************Name: test_commentEngine: InnoDBVersion: 10Row_format: DynamicRows: 0Avg_row_length: 0Data_length: 16384
Max_data_length: 0Index_length: 16384Data_free: 0Auto_increment: 1Create_time: 2019-05-11 15:41:01Update_time: NULLCheck_time: NULLCollation: utf8mb4_general_ciChecksum: NULLCreate_options:Comment: 表的注释
1 row in set (0.00 sec)

而通过 SHOW FULL COLUMNS 则可查看列的注释,其语法为:

SHOW FULL COLUMNS FROM <tablename>

以下是通过 SHOW FULL COLUMNS 查看的结果:

mysql>SHOW FULL COLUMNS FROM test_comment\G
*************************** 1. row ***************************Field: idType: bigint(20) unsignedCollation: NULLNull: NOKey: PRIDefault: NULLExtra: auto_increment
Privileges: select,insert,update,referencesComment:
*************************** 2. row ***************************Field: col1Type: int(11)Collation: NULLNull: YESKey:Default: NULLExtra:
Privileges: select,insert,update,referencesComment: 列的注释
2 rows in set (0.00 sec)

借助 INFORMATION_SCHEMA 中的表 也能查看表或列的注释。

比如查看表的注释:

SELECT table_comment
FROM   information_schema.tables
WHERE  table_name = 'test_comment'; 

执行结果:

mysql> SELECT table_comment-> FROM   information_schema.tables-> WHERE  table_name = 'test_comment';
+---------------+
| TABLE_COMMENT |
+---------------+
| 表的注释      |
+---------------+
1 row in set (0.01 sec)

查看列的注释:

SELECT column_comment
FROM   information_schema.columns
WHERE  column_name = 'col1'; 

执行结果:

mysql> SELECT column_comment-> FROM   information_schema.columns-> WHERE  column_name = 'col1';
+----------------+
| COLUMN_COMMENT |
+----------------+
| 列的注释       |
+----------------+
1 row in set (0.00 sec)

注释的更新

对已经存在的表和列,可通过相应的更新修改操作来添加注释。

列注释的添加,更新

CHANGEMODIFY 等效,区别在于 CHANGE 重写定义列,需要书写完整的列定义,包括新的列名称,即使你并不想修改列的免,而 MODIFY 则不用指定新的列名称。

通过 CHANGE 语法:

mysql> ALTER TABLE test_comment CHANGE col1 col1 INT COMMENT '列的注释2';
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

通过 MODIFY 语法:

mysql> ALTER TABLE test_comment MODIFY col1 INT COMMENT '列的注释2';
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

查看修改结果:

mysql> SHOW CREATE TABLE test_comment\G
*************************** 1. row ***************************Table: test_comment
Create Table: CREATE TABLE `test_comment` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`col1` int(11) DEFAULT NULL COMMENT '列的注释2',PRIMARY KEY (`id`),UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表的注释'
1 row in set (0.00 sec)

表注释的添加,更新

通过 ALTER TABLE 来完成对表注释的添加和更新。

mysql> ALTER TABLE test_comment comment '表的注释2';
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

查看更新结果:

mysql> SHOW CREATE TABLE test_comment\G
*************************** 1. row ***************************Table: test_comment
Create Table: CREATE TABLE `test_comment` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`col1` int(11) DEFAULT NULL COMMENT '列的注释2',PRIMARY KEY (`id`),UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='表的注释2'
1 row in set (0.00 sec)

注释的删除

更新注释时指定为空即可。

mysql> ALTER TABLE test_comment COMMENT '';
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0mysql> ALTER TABLE test_comment MODIFY col1 INT COMMENT '';
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

查看删除结果:

mysql> SHOW CREATE TABLE test_comment\G
*************************** 1. row ***************************Table: test_comment
Create Table: CREATE TABLE `test_comment` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`col1` int(11) DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
1 row in set (0.00 sec)

相关资源

  • MySQL Manual - 13.1.20 CREATE TABLE Syntax
  • MySQL Manual - 13.7.6.36 SHOW TABLE STATUS Syntax
  • Alter MySQL table to add comments on columns
  • Changing mysql table comment
  • Chapter 25 INFORMATION_SCHEMA Tables

转载于:https://www.cnblogs.com/Wayou/p/mysql_comments_for_table_and_column.html

MySQL 表和列的注释相关推荐

  1. MySQL 表和列的注释的添加以及查看

    经过自己亲自测试,非常好用,呵呵 MySQL的注释方法与SQL2008R2和Oracle的不太一样,另外两个数据的写法在其他文章中另述 -- 使用数据库xzmdb USE xzmdb;SET FORE ...

  2. mysql 删除字段的注释_MySQL表和列的注释总结

    像代码一样,可以为表以及表中的列添加注释,方便其他人知晓其功能.对于一些字段,在经过一定时间后,创建者未必也能想起其具体的含意,所以注释显得尤为重要. 注释的添加 注释的添加是通过在定义表或列的时候在 ...

  3. [导入]如何给表、列加注释?http://www.oradb.net

    如何给表.列加注释 文章来源:http://blog.csdn.net/yanlixin4csdn/archive/2005/03/12/318062.aspx 转载于:https://www.cnb ...

  4. 如何修改mysql表中列的大小?

    本文翻译自:How can I modify the size of column in a mysql table? I have created a table and accidentally ...

  5. oracle中给表加注释,Oracle基础知识(一) - 给表或列添加注释

    在这里记录一下,Oracle的基础知识,基本命令,分享一下. 有时候,想要给数据库中的表或者列添加注释,用命令, 以前都是用PL/SQL Developer 在界面中添加的, 查了一下 1.给表添加注 ...

  6. mysql 增加列和注释_MySql给表添加列和注释

    1.给表添加列 alter table supplier_seller add column company_id int null comment '供应主体id'; 默认情况下,添加的列会添加到最 ...

  7. mysql如何删除列中的约束_我们如何从现有MySQL表的列中删除NOT NULL约束?

    我们可以使用ALTER TABLE语句从现有表的列中删除NOT NULL约束. 示例 假设我们有一个表" test123",对列" ID"具有NOT NULL约 ...

  8. mysql表设计 列命名_MYSQL数据库字段命名及设计规范

    1.设计原则 1) 标准化和规范化 数据的标准化有助于消除数据库中的数据冗余.标准化有好几种形式,但 Third Normal Form(3NF)通常被认为在性能.扩展性和数据完整性方面达到了最好平衡 ...

  9. MySQL表生成列(Generated Columns)的使用说明

    原文地址 MySQL的表生成列通常又叫做虚拟列或计算列.这个生成列的值是在列定义时包含了一个计算表达式计算得到的,有两种类型的生成列: Virtual(虚拟):这个类型的列会在读取表记录时自动计算此列 ...

最新文章

  1. 波士顿动力「全家」跳舞贺新年,马斯克点赞视频:这不是CG!
  2. 【Android 逆向】Dalvik 函数抽取加壳 ( 类加载流程分析 | native 函数查询 | dalvik_system_DexFile.cpp#defineClassNative 函数 )
  3. [YTU]_2613( 距离产生美)
  4. 【干货】2014年iOS推广四大秘籍
  5. crontab快速上手
  6. python 判断div 之间的内容是否为空_python实现单向链表数据结构及其基本方法
  7. 线程中如何使用对象_在 Flink 算子中使用多线程如何保证不丢数据?
  8. 微信测试号开发 服务器 token验证
  9. 论文解读丨文档结构分析
  10. sap的工作日历_ABAP-有关日期的SAP函数使用(日历)
  11. 将博客搬至CSDN_wuli大世界_新浪博客
  12. 操作系统之哲学原理 第2版
  13. 取色器插件 react-color ChromePicker
  14. oracle中md5算法,oracle数据库中存储过程使用MD5算法加密
  15. 20款非常实用的Web工具和资源列表
  16. 汉语写代码编程与为什么很多软件有简体中文版
  17. Redmi Note 9 Pro 5G 换手机重新安装谷歌服务 Google Play
  18. win10没有android驱动安装,win10系统电脑没有手机驱动的解决方法介绍
  19. 9343拆机 xps13_戴尔(DELL)XPS 13 XPS13D-9343-1808T超极本拆解图评测-ZOL中关村在线
  20. 【泛微系统】OA运维小知识

热门文章

  1. java学习(39):九九乘法表
  2. 如何使用 SSH 控制连接 Windows 服务器
  3. HTML5中的audio在手机端和微信端的不能自动播放
  4. Nginx的应用之虚拟主机
  5. Dev Express Report 学习总结(五)在分组中使用聚集表达式AggregateExpression
  6. 如何让 C++ 和 C# 一样易用,而且效率更高?
  7. android-波浪效果ripple-background
  8. python在eclipse下中文乱码问题zz
  9. 【观点】从曾成杰案看民间金融的高风险与银行缺失的机制创新
  10. 【js拾遗】名称空间