千家信息网

MySQL表和列的注释总结

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,像代码一样,可以为表以及表中的列添加注释,方便其他人知晓其功能。对于一些字段,在经过一定时间后,创建者未必也能想起其具体的含意,所以注释显得尤为重要。注释的添加注释的添加是通过在定义表或列的时候在末尾
千家信息网最后更新 2024年11月26日MySQL表和列的注释总结

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

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

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

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

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

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

mysql> SHOW CREATE TABLE test_comment\G*************************** 1. row ***************************    Table: test_commentCreate 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 语法,还有其他一些查看注释的方式。

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: 16384Max_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

以下是通过 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_incrementPrivileges: 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_commentCreate 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_commentCreate 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_commentCreate 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_ci1 row in set (0.00 sec)
注释 结果 更新 语法 名称 时候 可通 最长 重要 不用 代码 关键 关键字 创建者 功能 含意 字段 字符 尤为 方式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发过程错误代价 青岛教育局网络安全 建立健全的网络安全制度 绿园区新时代网络安全常见问题 安卓软件开发工程师中专招聘 杭州程序软件开发哪家正规 电话诈骗属于网络安全吗 最好的网络技术大学 服务器进pe能看到硬盘数据吗 informix连接数据库 金融网络安全中心 虚拟浮雕软件开发 洛奇英雄传无法连接服务器 网络安全宣传周西安开幕 华为网络安全博士 农村土地调查数据库建设的意义 预防网络安全问题建议 江通网络技术 vs自带数据库如何使用 逸风公司是一家游戏软件开发商 数据库系统层次关系从核心到外围 记者对数据库管理员的采访 移动网络技术支持指的是 网络安全在陕西省大专院校有吗 包河区企业网络技术咨询优点 永恒之塔怀旧服服务器连接失败 筑牢公司网络安全防火墙 永丰软件开发公司 电脑怎么远程控制服务器 网络安全工具平台
0