视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL表和列的注释总结
2020-11-09 21:15:07 责编:小采
文档


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

注释的添加
注释的添加是通过在定义表或列的时候在末尾加上 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)

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

列注释的添加,更新
CHANGE 和 MODIFY 等效,区别在于 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将一个表中的某一列数据复制到另一个表中某一列里的方法
  • MySQL问答系列之什么情况下会用到临时表
  • Sql查询MySql数据库中的表名和描述表中字段(列)信息
  • 利用java+mysql递归实现拼接树形JSON列表的方法示例
  • Mysql表,列,库增删改查问题小结
  • Python中模块pymysql查询结果后如何获取字段列表
  • MySQL 按指定字段自定义列表排序的实现
  • 下载本文
    显示全文
    专题