MySQL字段类型分三类:数值型(含整数、浮点、DECIMAL、BIT)、日期/时间型(DATE、TIME、DATETIME、TIMESTAMP、YEAR)和字符串型(CHAR、VARCHAR、TEXT/BLOB、ENUM/SET),配合NOT NULL、DEFAULT等属性优化存储与查询。

MySQL字段类型主要分三类:数值型、日期/时间型、字符串型,每类下有多个具体类型,选对类型直接影响存储效率、查询性能和数据准确性。
数值类型:按范围和精度区分
整数类包括 TINYINT(1字节,-128~127)、SMALLINT(2字节)、MEDIUMINT(3字节)、INT(4字节,最常用)、BIGINT(8字节,适合ID、计数器等超大值)。都支持 UNSIGNED(无符号)属性,可将负数范围转为更大正数空间,比如 TINYINT UNSIGNED 可存 0~255。
浮点类有 FLOAT(单精度,约7位有效数字)、DOUBLE(双精度,约15位),适合科学计算但存在精度误差;需要精确计算(如金额)必须用 DECIMAL(M,D),例如 DECIMAL(10,2) 表示共10位、小数占2位,全程无精度丢失。
特殊类型 BIT(M) 用于位操作,如 BIT(1) 存布尔状态(0/1),节省空间;BOOL 是 TINYINT(1) 的别名,语义更清晰。
日期与时间类型:注意语义和自动行为差异
DATE 只存日期(YYYY-MM-DD),适合生日、上线日等纯日期场景;TIME 存时间(HH:MM:SS),范围支持负值,可用于时长计算;DATETIME 是完整时间戳(YYYY-MM-DD HH:MM:SS),范围广(1000–9999年),不随时区变化。
TIMESTAMP 本质是 Unix 时间戳(1970–2038),会自动转换为当前时区值,且 INSERT/UPDATE 时可设为自动填充(如 CURRENT_TIMESTAMP),适合记录创建/修改时间;YEAR 存年份,支持 YEAR(2) 或 YEAR(4),但推荐用 YEAR(4) 避免二位年歧义。
SiteStar V2.7版功能说明:增加和改善功能1、站点基本设置中增加地址栏图标上传。2、调整文章、产品按后台顺序值从大到小进行排序显示。3、新增留言模块自定义留言项功能,方便各种网站留言表单需求。4、下载模块中,下载类型新增外部链接方式。5、友情链接、在线客服模块,新增排序字段,可调整显示顺序。6、新增走马灯按后台顺序值从大到小进行排序显示。7、增强公告模块设置滚动速度。8、产品列表显示方式
字符串类型:长度、变长与用途要匹配
CHAR(L) 固定长度,L 为字符数(非字节数),最大255,适合长度稳定的数据,如性别(CHAR(1))、国家代码(CHAR(2));存入短于L的值会补空格,检索时自动去尾空格。
VARCHAR(L) 可变长度,同样以字符为单位,最大65535(受行总长限制),实际占用空间 = 内容字节数 + 1或2字节长度标识,适合昵称、地址等长度波动大的字段。
大文本用 TEXT 系列(TINYTEXT/MEDIUMTEXT/TEXT/LONGTEXT),不需指定长度,适合文章、日志;二进制大对象用 BLOB 系列,如图片、文件;ENUM 和 SET 适用于有限固定选项,如状态('draft','published','archived'),前者单选,后者多选。
字段属性:配合类型增强约束与行为
常见属性包括:NOT NULL(禁止空值)、DEFAULT(默认值,支持函数如 CURRENT_TIMESTAMP)、AUTO_INCREMENT(仅用于整数主键,自增)、PRIMARY KEY(唯一+非空)、UNIQUE(值不可重复)、ZEROFILL(配合 INT(M) 显示前导零,如 INT(5) ZEROFILL 存 7 得 00007)。
注意:INT(11) 中的 11 不是存储长度限制,只是显示宽度,仅在配合 ZEROFILL 时生效;真正决定取值范围的是类型本身(如 INT 总是 ±21亿)。









