mysql表和列的注释(代码片段)

wayou wayou     2022-12-09     649

关键词:

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

注释的添加

注释的添加是通过在定义表或列的时候在末尾加上 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_comment
         Engine: InnoDB
        Version: 10
     Row_format: Dynamic
           Rows: 0
 Avg_row_length: 0
    Data_length: 16384
Max_data_length: 0
   Index_length: 16384
      Data_free: 0
 Auto_increment: 1
    Create_time: 2019-05-11 15:41:01
    Update_time: NULL
     Check_time: NULL
      Collation: utf8mb4_general_ci
       Checksum: NULL
 Create_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: id
      Type: bigint(20) unsigned
 Collation: NULL
      Null: NO
       Key: PRI
   Default: NULL
     Extra: auto_increment
Privileges: select,insert,update,references
   Comment:
*************************** 2. row ***************************
     Field: col1
      Type: int(11)
 Collation: NULL
      Null: YES
       Key:
   Default: NULL
     Extra:
Privileges: select,insert,update,references
   Comment: 列的注释
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: 0

mysql> 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连接多个表和列重复[关闭](代码片段)

我知道如何连接多个表,但我试图在两个不同的列中显示从1列中获取的值。所以:table1.codseller=table2.id和table1.codbuyer=table2.id例:TABLE1id_ord|order|codseller|codbuyer|qty|price----------+-------+------------+---------+---------------+---- 查看详情

如何强制雪花视图继承表注释和列注释?

...6-0918:04:32【问题描述】:最近开始使用雪花,任务是确保表和这些表上的视图在它们和列上都有cmets。雪花中是否有一个选项可以将基础表和列的cmets导入到视图中,这样我就不必再次在视图和视图列上手动创建相同的c 查看详情

sqloracle所有表和列(代码片段)

查看详情

数据库、表和列的命名约定? [关闭]

】数据库、表和列的命名约定?[关闭]【英文标题】:Database,TableandColumnNamingConventions?[closed]【发布时间】:2010-09-0516:18:04【问题描述】:每当我设计数据库时,我总是想知道是否有最好的方法来命名我的数据库中的项目。我经常... 查看详情

跨两个表和列的带有“IN”子句的 Sql Query

】跨两个表和列的带有“IN”子句的SqlQuery【英文标题】:SqlQuerywith"IN"clauseacrosstwotablesandcolumns【发布时间】:2017-03-0107:20:15【问题描述】:表1:Id|Mapping_Id(INT)------------------11001210023100341004表2:Name|ResultId(nvarchar(Max))--------- 查看详情

从 JSON 数据自动生成 MySQL 表和列

】从JSON数据自动生成MySQL表和列【英文标题】:GeneratingMySQLtableandcolumnsautomaticallyfromJSONdata【发布时间】:2019-10-1517:42:49【问题描述】:我正在尝试读取从API中检索到的JSON。我想获取该数据并自动创建存储接收到的信息所需的表... 查看详情

java--mybatisplus表和列;自定义sql(代码片段)

阅读前可先参考https://blog.csdn.net/MinggeQingchun/article/details/126521908https://blog.csdn.net/MinggeQingchun/article/details/126533536一、表和列 注解|MyBatis-Plus1、表名@TableName注解定义实体类时,默认需要和数据库中的表名保持 查看详情

MySql 从表和列中删除排序规则

】MySql从表和列中删除排序规则【英文标题】:MySqlremovecollationspecfromtableandcolumns【发布时间】:2018-05-0501:37:13【问题描述】:在我的数据库中,一些表和列是用排序规则明确定义的:CREATETABLE`MyTable`(`MyTableId`int(11)NOTNULLAUTO_INCREMENT... 查看详情

mysql修改表备注,列信息(代码片段)

1、添加表和字段的注释创建数据表的同时,给表和字段添加注释--创建用户信息表CREATETABLEtb_user(idINTAUTO_INCREMENTPRIMARYKEYCOMMENT‘编号‘,nameVARCHAR(30)COMMENT‘姓名‘)COMMENT=‘用户信息表‘;2、修改表注释ALTERTABLEtb_userCOMMENT‘用户信息... 查看详情

html具有固定行和列的表(代码片段)

查看详情

Hibernate MySQL 查找未映射的表和列

】HibernateMySQL查找未映射的表和列【英文标题】:HibernateMySQLFindUnmappedTablesandColumns【发布时间】:2018-05-0603:02:07【问题描述】:我使用Hibernate的自动生成DDL功能来创建我的表和列。但是,我最终删除了实体中的许多列,但这些列... 查看详情

test(代码片段)

...存储emoji表情的需要,字符集需要采用utf8mb4字符集3.所有表和字段都需要添加注释使用comment从句添加表和列的备注从一开始就进行数据字典的维护4.尽量控制单表数据量的大小,建议控制在500万以内500万并不是Mysql数据库的限制... 查看详情

information_schema系列四(跟踪,列约束,表和列)(代码片段)

   这个系列的文章主要是为了能够让自己了解MySQL5.7的一些系统表,统一做一下备注和使用,也希望分享出来让大家能够有一点点的受益。1:KEY_COLUMN_USAGE按照官方的解释,这个表描述的是关于有约束的列。也就是没有... 查看详情

b_lc_给定行和列的和求可行矩阵(找行和列的和的最小值填)(代码片段)

给定rowSum[i]是二维矩阵中第i行元素的和,colSum[j]是第j列元素的和请找到大小为rowSum.lengthxcolSum.length的任意非负整数矩阵,且该矩阵满足rowSum和colSum的要求。思路我是这样想的:越先找到越小的值填了的容错能力更强!classSolution... 查看详情

七mysql中的复制删除表和记录(代码片段)

1、复制表的列结构和记录格式:CREATETABLE新表名SELECT*FROM源表名;演示:2、仅复制表的列结构在CREATETABLE命令的表名后面加上LIKE指定复制的元素。格式:CREATETABLE新表名LIKE源表名;演示:该方法也会复制AUTO_INCREMENT和... 查看详情

两个数据帧的索引和列的联合(代码片段)

...columns=[1,2,5])我想转换df_A和df_B,使得两者共享相同的索引和列,这两者是两者的联合。缺少的值将用NaN填充:df_A 查看详情

Sqlite:向表和列添加 COMMENT ON 描述?

】Sqlite:向表和列添加COMMENTON描述?【英文标题】:Sqlite:addingCOMMENTONdescriptionstotablesandcolumns?【发布时间】:2011-11-1713:54:13【问题描述】:在MySQLWorkbench中,您可以将COMMENTs添加到MySQL数据库中的表和列中。Sqlite是否支持向表和列... 查看详情

mysql将数据加载到多个表和循环中(代码片段)

我有一个50列的csv文件,我需要将csv数据插入2个表。第一个表应该有前10列,第二个表应该有10列中剩余的40列数据。csv文件有50列co1col2col3col4-----col50.第一张桌子col1col2col3----col10第二张桌子col11col12col13----col20(firstrow)col21col22col23----... 查看详情