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

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

1. 整数类型

推荐使用的类型:

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

不建议使用的类型:

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

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

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

2. 浮点类型

数据类型占用空间精度使用场景
FLOAT4 字节7 位有效数字非常小的精度要求(例如传感器数据、实验室测量数据)
DOUBLE8 字节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. 日期时间类型

数据类型占用空间取值范围/格式使用场景
DATE3 字节'YYYY-MM-DD'存储日期,不包含时间部分
TIME3 字节'HH:MM:SS'存储时间,不包含日期部分
YEAR1 字节'YYYY'存储年份
DATETIME8 字节'YYYY-MM-DD HH:MM:SS'存储日期和时间组合
TIMESTAMP4 字节'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:适用场景较少,除非特定需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值