MySql 建表的字段注释和表注释

举报
福州司马懿 发表于 2025/09/22 13:58:36 2025/09/22
【摘要】 在 MySQL 中,建表时可以通过 COMMENT 关键字为表和字段添加注释。以下是详细写法: 1. 表注释在 CREATE TABLE 语句末尾使用 COMMENT 关键字:CREATE TABLE 表名 ( -- 字段定义) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='这是表的注释'; 示例:CREATE TABLE `users`...

在 MySQL 中,建表时可以通过 COMMENT 关键字为表和字段添加注释。以下是详细写法:


1. 表注释

CREATE TABLE 语句末尾使用 COMMENT 关键字:

CREATE TABLE 表名 (
    -- 字段定义
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='这是表的注释';

示例:

CREATE TABLE `users` (
    `id` INT AUTO_INCREMENT PRIMARY KEY,
    `username` VARCHAR(50) NOT NULL COMMENT '用户名',
    `email` VARCHAR(100) NOT NULL COMMENT '用户邮箱'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';

2. 字段注释

在每个字段定义后添加 COMMENT

CREATE TABLE 表名 (
    字段名 数据类型 [约束] COMMENT '字段注释',
    ...
);

示例:

CREATE TABLE `products` (
    `id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '产品ID',
    `name` VARCHAR(100) NOT NULL COMMENT '产品名称',
    `price` DECIMAL(10,2) NOT NULL COMMENT '产品价格(单位:元)',
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表';

3. 修改已有表的注释

如果表已存在,可以通过 ALTER TABLE 修改注释:

-- 修改表注释
ALTER TABLE 表名 COMMENT='新的表注释';

-- 修改字段注释
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型 COMMENT '新的字段注释';

示例:

-- 修改表注释
ALTER TABLE `users` COMMENT='网站用户表(2023版)';

-- 修改字段注释
ALTER TABLE `products` MODIFY COLUMN `price` DECIMAL(10,2) COMMENT '产品价格(含税)';

4. 查看表及字段注释

查看表注释:

SHOW CREATE TABLE 表名;  -- 在结果中查看 COMMENT 部分

或查询 information_schema

SELECT TABLE_COMMENT 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = '数据库名' AND TABLE_NAME = '表名';

查看字段注释:

SHOW FULL COLUMNS FROM 表名;  -- 在结果中查看 Comment 列

或查询 information_schema

SELECT COLUMN_NAME, COLUMN_COMMENT 
FROM information_schema.COLUMNS 
WHERE TABLE_SCHEMA = '数据库名' AND TABLE_NAME = '表名';

注意事项

  1. 字符集:建议指定 DEFAULT CHARSET=utf8mb4 以支持完整 Unicode(包括 Emoji)。
  2. 存储引擎:明确指定 ENGINE=InnoDB(默认引擎可能因 MySQL 版本而异)。
  3. 注释内容:用单引号 ' ' 包裹注释文本,支持中文。
  4. 动态字段:如果修改字段数据类型,需在 MODIFY COLUMN 时重新指定 COMMENT(否则注释可能丢失)。

完整示例

CREATE TABLE `orders` (
    `id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '订单ID',
    `user_id` INT NOT NULL COMMENT '用户ID',
    `amount` DECIMAL(1,2) NOT NULL COMMENT '订单金额',
    `status` ENUM('pending', 'paid', 'shipped', 'completed') DEFAULT 'pending' COMMENT '订单状态',
    `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '下单时间',
    INDEX (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单记录表';

通过注释,可以显著提升数据库的可读性和维护性!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。