MySQL中的数据类型总结(全网最全总结)

        在MySQL中,数据类型可以大致分为整数类型、浮点类型、字符串类型、日期时间类型、布尔类型等。根据阿里巴巴Java开发手册的规范,以下是常用的数据类型及其使用场景,并标注了推荐使用的和不建议使用的类型。

1. 整数类型

推荐使用的类型:

  • TINYINT、SMALLINT、INT、BIGINT:根据实际取值范围选择合适的数据类型,覆盖了大多数存储场景。

不建议使用的类型:

  • MEDIUMINT:适用场景少,取值范围在大多数情况下并不合适。

【强制】表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint( 1表示是,0表示否)。
说明:任何字段如果为非负数,必须是unsigned
正例:表达逻辑删除的字段名is_deleted,1表示删除,0表示未删除。

-- 《阿里巴巴Java开发手册》

2. 浮点类型

数据类型 占用空间 精度 使用场景
FLOAT 4 字节 7 位有效数字 非常小的精度要求(例如传感器数据、实验室测量数据)
DOUBLE 8 字节 15 位有效数字 需要高精度的数值计算(例如财务、科学计算)
DECIMAL 根据定义而定 高精度,定义具体位数 需要精确存储数值,例如货币计算
NUMERIC 根据定义而定 同DECIMAL

DECIMAL的别名,常用于需要非常高精度的存储

推荐使用的类型:

  • DECIMAL:适用于货币、财务计算等需要高精度的场景。

不建议使用的类型:

  • FLOAT:由于精度有限,计算中容易产生误差,尤其是对于财务数据。
  • DOUBLE:与FLOAT类似,虽然精度高于FLOAT,但仍不适合需要完全精确的计算。

3. 字符串类型

数据类型 占用空间 使用场景
CHAR 固定长度,最多255字节 存储长度固定的短文本(如性别、国家代码)
VARCHAR 可变长度,最多65,535字节 存储长度可变的文本(如姓名、描述信息)
TINYTEXT 最多255字节 短文本(如简短的留言、备注)
TEXT 最多65,535字节 中等长度的文本(如文章内容)
MEDIUMTEXT 最多16,777,215字节 大量文本(如长文章、博客内容)
LONGTEXT 最多4,294,967,295字节 超大量文本(如书籍、文档等)

推荐使用的类型:

  • VARCHAR:适合大多数文本数据,长度可变,效率高。
  • TEXT:适合存储较长文本,例如描述字段等。

不建议使用的类型:

  • CHAR:固定长度会浪费空间,只有在长度完全固定的情况下才使用。

4. 日期时间类型

数据类型 占用空间 取值范围/格式 使用场景
DATE 3 字节 'YYYY-MM-DD' 存储日期,不包含时间部分
TIME 3 字节 'HH:MM:SS' 存储时间,不包含日期部分
YEAR 1 字节 'YYYY' 存储年份
DATETIME 8 字节 'YYYY-MM-DD HH:MM:SS' 存储日期和时间组合
TIMESTAMP 4 字节 'YYYY-MM-DD HH:MM:SS' 存储日期时间,自动更新为当前时间
DATETIME(fsp) 8 字节 'YYYY-MM-DD HH:MM:SS[.fraction]' 存储日期和时间,支持微秒精度
TIMESTAMP(6) 4 字节 'YYYY-MM-DD HH:MM:SS[.fraction]' 存储日期时间,支持微秒精度

推荐使用的类型:

  • DATETIME:适用于需要同时记录日期和时间的应用场景。
    TIMESTAMP:适用于需要自动记录创建或修改时间的场景。

不建议使用的类型:

  • DATE、TIME:仅当确实只需要存储日期或时间而不包含另一部分时使用。
    YEAR:适用场景较少,除非特定需求。

猜你喜欢

转载自blog.csdn.net/weixin_73624019/article/details/142257981