当前位置: 首页 > news >正文

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:适用场景较少,除非特定需求。

http://www.mrgr.cn/news/26952.html

相关文章:

  • Docker操作MySQL
  • 巴西电商市场规模、前景及支付方式(pix、Boleto)
  • 如何使用ssm实现个性化旅游攻略定制系统设计与实现
  • 【C++】类和对象(下)
  • Linux 性能优化 copy
  • 力扣刷题--3033. 修改矩阵【简单】
  • yml在线格式转换工具(properties)
  • VuePress搭建文档网站/个人博客(简单配置、易上手)
  • 打破瓶颈:搭贝低代码平台助力企业数字化转型
  • 损失函数和反向传播
  • C语言双向链表
  • 不可思议!这7个反共识设计原则,正悄然改变AI应用的未来格局!
  • 代码随想录算法训练营第13天|二叉树基础知识、递归遍历、迭代遍历、层序遍历、116. 填充每个节点的下一个右侧节点指针
  • 柏强制药苦练内功打造“拳头产品”
  • sql语句在mysql中的执行过程
  • sql中的APPLY 和 LATERAL
  • 集群聊天服务器项目【C++】(三)muduo库的简单介绍
  • GIT版本控制
  • 房产销售系统:SpringBoot技术应用案例
  • 20240915 每日AI必读资讯