数值类型是 MySQL 中最常用的数据类型之一。在 MySQL 中,数值类型可分为整型和浮点型两大类。
一、整型
整型用于存储整数值,包括以下几种:
- TINYINT:占用 1 个字节,范围是 -128 ~ 127 或者 0 ~ 255,可以用于存储布尔值。用于存储布尔值的情况,例如用户是否订阅了某个邮件列表,可以使用 TINYINT(1) 类型。
- SMALLINT:占用 2 个字节,范围是 -32,768 ~ 32,767 或者 0 ~ 65,535。
- MEDIUMINT:占用 3 个字节,范围是 -8,388,608 ~ 8,388,607 或者 0 ~ 16,777,215。
- INT:占用 4 个字节,范围是 -2,147,483,648 ~ 2,147,483,647 或者 0 ~ 4,294,967,295。用于存储年龄等整数数据,例如用户的年龄可以使用 INT 类型。
- BIGINT:占用 8 个字节,范围是 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 或者 0 ~ 18,446,744,073,709,551,615。用于存储极大的整数数据,例如用户 ID 等数据可以使用 BIGINT 类型。
整型数据类型的选择取决于需要存储的数据范围和空间占用情况。例如,如果需要存储性别这种取值范围较小的数据,可以使用 TINYINT 类型。
二、浮点型
浮点型用于存储浮点数值,包括以下几种:
- FLOAT:占用 4 个字节,单精度浮点数,精度为 7 位小数。用于存储单价等浮点数值,例如商品的单价可以使用 FLOAT 类型。
- DOUBLE:占用 8 个字节,双精度浮点数,精度为 15 位小数。用于存储极高精度的浮点数值,例如科学计算等领域可以使用 DOUBLE 类型。
- DECIMAL:用于存储精度要求较高的数值,可以指定精度和小数位数,占用空间根据精度而定。用于存储货币等需要高精度计算的数值,例如订单金额等可以使用 DECIMAL 类型。
在存储浮点数值时,需要注意精度损失的问题,因为浮点数值在计算机中是以二进制形式存储的,可能存在精度损失。在需要精确计算的场景中,应该使用 DECIMAL 类型。