MySQL支持数值、字符串、日期时间等数据类型,合理选择可提升性能与存储效率。数值型包括TINYINT、INT、BIGINT、FLOAT、DOUBLE及精确计算用的DECIMAL;字符串型有CHAR、VARCHAR、TEXT系列及ENUM、SET;日期时间型涵盖DATE、TIME、DATETIME和自动时区转换的TIMESTAMP;另有BLOB存二进制、BOOLEAN表示真假、JSON存结构化数据。根据场景选用合适类型可优化存储与查询,如金额用DECIMAL,状态用TINYINT或ENUM,文本按长度选TEXT类,时间记录推荐TIMESTAMP。

MySQL数据库支持多种数据类型,主要分为三大类:数值类型、字符串类型和日期时间类型。每种类型适用于不同的场景,合理选择可以提升性能和节省存储空间。
数值类型
用于存储数字数据,分为整数和浮点数两类。
- TINYINT:1字节,范围 -128 到 127(有符号),常用于状态标记
- SMALLINT:2字节,范围 -32,768 到 32,767
- MEDIUMINT:3字节,范围约 -8百万到 8百万
- INT 或 INTEGER:4字节,最常用的整型,范围约 -21亿到 21亿
- BIGINT:8字节,用于超大整数,如主键ID或计数器
- FLOAT:单精度浮点数,适合对精度要求不高的小数
- DOUBLE:双精度浮点数,精度更高,用于科学计算等
- DECIMAL(M,D):定点数,精确存储小数,常用于金额字段,M是总位数,D是小数位数
字符串类型
用于存储文本或字符数据。
- CHAR(N):固定长度字符串,最大255字符,不足补空格,适合长度固定的值如性别、状态码
- VARCHAR(N):可变长度字符串,最大65,535字节(实际受行大小限制),常用作名称、描述等字段
- TINYTEXT:最大255字节,适合短文本
- TEXT:最大65,535字符,用于文章内容、备注等
- MEDIUMTEXT:最大约16MB,适合较长内容
- LONGTEXT:最大约4GB,用于超大文本
- ENUM:枚举类型,只能取预定义的值之一,如 ENUM('男','女')
- SET:集合类型,可存储多个预定义值中的若干个
日期时间类型
用于处理时间和日期相关的数据。
前台功能介绍:1、网页首页显示有高级会员推荐,精品推荐,商业机会分类列表,最新供求信息,网站动态,推荐企业,行业动态等;2、商业机会栏目功能有:二级分类,已经带有详细分类的数据库,后台可以更改增加操作,并可以推荐公司,栏目分为分类显示信息,最新的采购、供应、合作和代理信息,搜索时同样按分类,信息,时间,交易类型等搜索;3、展厅展品栏目功能:二级分类,已经带有详细分类的数据库,后台可以更改增加操作,
- DATE:格式 'YYYY-MM-DD',仅存储日期,范围从 1000-01-01 到 9999-12-31
- TIME:格式 'HH:MM:SS',存储时间或时间间隔
- YEAR:存储年份,可以是 2 位或 4 位格式
- DATETIME:格式 'YYYY-MM-DD HH:MM:SS',范围从 1000年到9999年,不带时区
- TIMESTAMP:时间戳,范围 '1970-01-01 00:00:01' UTC 到约 2038年,自动转换为UTC存储,查询时转回本地时区,常用于记录创建/更新时间
其他常用类型
还有一些特殊用途的数据类型。
- BLOB 类型:用于存储二进制数据,如图片、文件。包括 TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB,对应 TEXT 类型的二进制版本
- BOOLEAN 或 BOOL:实际是 TINYINT(1) 的别名,0 表示 false,非0 表示 true
- JSON:MySQL 5.7+ 支持,用于存储结构化 JSON 数据,支持索引和查询操作
基本上就这些。根据实际需求选择合适的数据类型,不仅能减少存储占用,还能提高查询效率和数据完整性。比如金额用 DECIMAL,状态用 ENUM 或 TINYINT,文本内容按长度选 TEXT 类型,时间记录优先考虑 TIMESTAMP。不复杂但容易忽略细节。









