mysql数据库中数据类型有哪些

来源:这里教程网 时间:2026-02-28 20:16:49 作者:

MySQL数据库支持多种数据类型,主要分为三大类:数值类型、字符串类型和日期时间类型。每种类型适用于不同的场景,合理选择可以提升性能和节省存储空间。

数值类型

用于存储数字数据,分为整数和浮点数两类。

TINYINT:1字节,范围 -128 到 127(有符号),常用于状态标记 SMALLINT:2字节,范围 -32,768 到 32,767 MEDIUMINT:3字节,范围约 -8百万到 8百万 INTINTEGER: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:集合类型,可存储多个预定义值中的若干个

日期时间类型

用于处理时间和日期相关的数据。

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 类型的二进制版本 BOOLEANBOOL:实际是 TINYINT(1) 的别名,0 表示 false,非0 表示 true JSON:MySQL 5.7+ 支持,用于存储结构化 JSON 数据,支持索引和查询操作

基本上就这些。根据实际需求选择合适的数据类型,不仅能减少存储占用,还能提高查询效率和数据完整性。比如金额用 DECIMAL,状态用 ENUM 或 TINYINT,文本内容按长度选 TEXT 类型,时间记录优先考虑 TIMESTAMP。不复杂但容易忽略细节。

相关推荐