适配 MySQL 数据库的建表语句,并做了合理的数据类型设计,同时补充说明字段含义与可调整项:
sql
-- 创建 afinfo 表
CREATE TABLE `afinfo` (
`Id` INT NOT NULL AUTO_INCREMENT COMMENT '主键ID,自增',
`name` VARCHAR(50) NOT NULL COMMENT '姓名',
`age` INT NULL COMMENT '年龄',
`birth` DATE NULL COMMENT '出生日期',
`sex` VARCHAR(10) NULL COMMENT '性别',
`memo` VARCHAR(50) NULL COMMENT '备注/学历信息',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='人员信息表';
-- 插入示例数据
INSERT INTO `afinfo` (`name`, `age`, `birth`, `sex`, `memo`)
VALUES
('徐洪国', 37, '1979-03-23', '男', '高中'),
('王芳芳', 26, '1988-02-06', '女', '本科'),
('徐晓盛', 24, '1990-04-02', '男', '硕士'),
('陈晓', 30, '1984-09-12', '女', '博士'),
('郑凯', 27, '1987-12-30', '男', '大专');
说明与可选优化
-
字段设计说明
Id:设为自增主键,保证数据唯一性。name/sex/memo:用VARCHAR存储字符串,长度按场景做了合理预留。age:用INT存储数字,也可以通过birth字段计算得出,减少冗余。birth:用DATE存储日期,更规范且方便后续日期函数操作。
-
可选优化项
-
若要对性别做约束,可添加
CHECK或枚举类型:sql
`sex` ENUM('男','女') NULL COMMENT '性别' -
若要保证姓名不重复,可添加唯一索引: sql
UNIQUE KEY `uk_name` (`name`) -
若字段需支持更长文本,可将
memo改为TEXT类型。
-