MySql 建表的字段注释和表注释
【摘要】 在 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 = '表名';
注意事项
- 字符集:建议指定
DEFAULT CHARSET=utf8mb4
以支持完整 Unicode(包括 Emoji)。 - 存储引擎:明确指定
ENGINE=InnoDB
(默认引擎可能因 MySQL 版本而异)。 - 注释内容:用单引号
' '
包裹注释文本,支持中文。 - 动态字段:如果修改字段数据类型,需在
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)