mysql 注释语法_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_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 语法,还有其他一些查看注释的方式。

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

以下是通过 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表和列的注释总结

本文地址: http://www.cppcns.com/shujuku/mysql/259021.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值