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

注释的添加

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

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

  1. CREATE TABLE test_comment
  2. (
  3. id SERIAL PRIMARY KEY,
  4. col1 INT comment '列的注释'
  5. )
  6. comment '表的注释';

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

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

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

注释的查看

除了 SHOW CREATE TABLE <table_name> 语法,还有其他一些查看注释的方式。

SHOW TABLE STATUS 能够查看表的注释,其语法为:

  1. SHOW TABLE STATUS WHERE name='table_name';

以下是通过 SHOW TABLE STATUS 查看的结果:

  1. mysql> SHOW TABLE STATUS WHERE name='test_comment'\G
  2. *************************** 1. row ***************************
  3. Name: test_comment
  4. Engine: InnoDB
  5. Version: 10
  6. Row_format: Dynamic
  7. Rows: 0
  8. Avg_row_length: 0
  9. Data_length: 16384
  10. Max_data_length: 0
  11. Index_length: 16384
  12. Data_free: 0
  13. Auto_increment: 1
  14. Create_time: 2019-05-11 15:41:01
  15. Update_time: NULL
  16. Check_time: NULL
  17. Collation: utf8mb4_general_ci
  18. Checksum: NULL
  19. Create_options:
  20. Comment: 表的注释
  21. 1 row in set (0.00 sec)

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

  1. SHOW FULL COLUMNS FROM <tablename>

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

  1. mysql>SHOW FULL COLUMNS FROM test_comment\G
  2. *************************** 1. row ***************************
  3. Field: id
  4. Type: bigint(20) unsigned
  5. Collation: NULL
  6. Null: NO
  7. Key: PRI
  8. Default: NULL
  9. Extra: auto_increment
  10. Privileges: select,insert,update,references
  11. Comment:
  12. *************************** 2. row ***************************
  13. Field: col1
  14. Type: int(11)
  15. Collation: NULL
  16. Null: YES
  17. Key:
  18. Default: NULL
  19. Extra:
  20. Privileges: select,insert,update,references
  21. Comment: 列的注释
  22. 2 rows in set (0.00 sec)

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

比如查看表的注释:

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

执行结果:

  1. mysql> SELECT table_comment
  2. -> FROM information_schema.tables
  3. -> WHERE table_name = 'test_comment';
  4. +---------------+
  5. | TABLE_COMMENT |
  6. +---------------+
  7. | 表的注释 |
  8. +---------------+
  9. 1 row in set (0.01 sec)

查看列的注释:

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

执行结果:

  1. mysql> SELECT column_comment
  2. -> FROM information_schema.columns
  3. -> WHERE column_name = 'col1';
  4. +----------------+
  5. | COLUMN_COMMENT |
  6. +----------------+
  7. | 列的注释 |
  8. +----------------+
  9. 1 row in set (0.00 sec)

注释的更新

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

列注释的添加,更新

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

通过 CHANGE 语法:

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

通过 MODIFY 语法:

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

查看修改结果:

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

表注释的添加,更新

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

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

查看更新结果:

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

注释的删除

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

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

  6. Query OK, 0 rows affected (0.01 sec)

  7. Records: 0 Duplicates: 0 Warnings: 0

查看删除结果:

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

相关资源

MySQL 表和列的注释的更多相关文章

  1. MySql给表添加列和注释

    1.给表添加列 ALTER TABLE supplier_seller ADD COLUMN company_id INT NULL COMMENT '供应主体id'; 默认情况下,添加的列会添加到最 ...

  2. oracle给表及列添加注释

    给表添加注释 comment on   table    MW_SYS.MWT_OM_OBJ1 is '业务类型的对象实例.'; 给表中的列添加注释 comment on column MW_SYS. ...

  3. 完美解决CodeSmith无法获取MySQL表及列Description说明注释的方案

    问题描述: CodeSmith是现在比较实用的代码生成器,但是我们发现一个问题: 使用CodeSmith编写MySQL模板的时候,会发现一个问题:MySQL数据表中的列说明获取不到,也就是column ...

  4. mysql 表及其列字符集设置

    --修改表的字符集 alter table rtb_media_daily_report character set gbk; --查询表列字符集 show full columns from rtb ...

  5. oracle怎么给表和列加注释

    oracle添加注释的语法为: comment on column 字段名 is  '注释名' 举例: 创建表: CREATE TABLE t1{ id varchar2(32) primary ke ...

  6. Oracle表、列、约束的操作

    获得有关表的信息 可以直接DESCRIBE DESC[RIBE] table_name; 可以通过数据字典 SELECT * FROM user_tables WHERE table_name =xx ...

  7. 高速创建和mysql表相应的java domain实体类

    今天创建了一个表有十几个字段,创建完之后必定要写一个与之相应的java domain实体类. 这不是反复的工作吗?为什么不先把这个表的全部的字段查出来,然后放到linux环境下,用sed工具在每一行的 ...

  8. MSSQL·查看DB中所有表及列的相关信息

    阅文时长 | 0.6分钟 字数统计 | 1013.6字符 主要内容 | 1.引言&背景 2.声明与参考资料 『MSSQL·查看DB中所有表及列的相关信息』 编写人 | SCscHero 编写时 ...

  9. SQLSERVER和ORACLE系统表获取表名 列名以及列的注释

    在工作中从数据库取的数据要导出来,但是发现导出的EXCEL中列名都是字段名(英文),为此搜集资料怎么把字段名变为中文名称,而发现ORACLE和SQLSERVER(用的SQLSERVER2008R2)又 ...

随机推荐

  1. 【问题篇四】启动报DataSource错误

    初建一个简单的spring boot 项目,启动后会报错:就是在项目启动的时候在 resource目录下没有加载到配置信息:如果项目只是想简单的启动运行,不进行数据库操作可以在 启动类上做如下处理便可 ...

  2. MySQL 优化 (三)

    参数优化 query_cache_size (1) 简介: 查询缓存简称QC,使用查询缓冲,mysql将查询结果存放在缓冲区中,今后对于同样的select语句(区分大小写),将直接从缓冲区中读取结果. ...

  3. 【LeetCode】6. Z 字形变换

    题目 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L   C   ...

  4. .Netcore Swagger - 解决外部库导致的“Actions require an explicit HttpMethod binding for Swagger 2.0”

    现象: 项目中导入Ocelot后,swagger页面无法正常显示,查看异常发现 Ocelot.Raft.RaftController 中的 Action 配置不完全,swagger扫描时不能正确生成 ...

  5. GO基础之结构体

    1 .什么是结构体 GO语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型.结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 2.什么是实例化? Go结构体的 ...

  6. [转]Workbook.SaveAs method (Excel) Password

    本文转自:https://docs.microsoft.com/en-us/office/vba/api/excel.workbook.saveas Saves changes to the work ...

  7. OpenCV绘制直线,矩形和园

    首先导入我们所需要的库: import numpy as np import cv2 import matplotlib.pyplot as plt 自定义显示图像的函数: def show(imag ...

  8. Spring Boot 2 + jpa + mysql例子

    Spring Data框架为数据访问提供了一个通用的模型,无论访问哪种数据库,都可以使用同样的方式,主要有以下几个功能:(1)提供数据与对象映射的抽象层,同一个对象,可以被映射为不同数据库的数据:(2 ...

  9. 如何去除小程序button的边框

    小程序button 自带样式,就算用 border:none: background:none ,还是会有一条细的边框 使用:after选择器就可以去除 button::after{ border:n ...

  10. Shell变量概述

    目录 1. Shell变量概述 1.定义变量,变量名=变量值.不能出现"-横杠"命令 2.引用变量,$变量名 3.查看变量,set显示所有变量,包括自定义变量和环境变量 4.取消变 ...