mysql数据类型

avatar
作者
筋斗云
阅读量:8

MySql 8 数据类型

设计mysql表结构的时候,有很多数据类型供我们选择,下面来介绍下mysql8中常用的数据类型

整数类型

在这里插入图片描述

整数类型有可选的unsigned属性,表示不允许负值,这可以使正数的上限提高一倍(还多1)。有符号

和无符号类型使用相同的存储空间,并且具有相同的性能,因此可以根据实际情况选择合适的类型。

mysql可以为整数类型指定宽度,例如INT(11),对大多数应用来说这是没有意义的:它不会限制合法范

围,只是规定了mysql的一些交互工具(例如mysql命令行客户端)用来显示字符的个数。对于存储和计

算来说,INT(1)和INT(20)是相同的。

实数类型

在这里插入图片描述

注意FLOAT和DOUBLE可表示的范围不是完全连续的浮点数,由于精度的限制,有些极小的小数是表示

不了的

DECIMAL类型最多允许65个数字,表示为DECIMAL(M,D)的格式。例如DECIMAL(5,2)表示最多保存5个

数字,其中2个是小数,表示的范围在-999.99 到 999.99之间。如果小数位数D为0,则DECIMAL值不包

含小数点或小数部分

DECIMAL类型最多允许65个数字,表示为DECIMAL(M,D)的格式。例如DECIMAL(5,2)表示最多保存5个

数字,其中2个是小数,表示的范围在-999.99 到 999.99之间。如果小数位数D为0,则DECIMAL值不包

含小数点或小数部分

因为cpu不支持对DECIMAL的直接计算,所以在mysql5.0以上的版本中,mysql服务器自身实现了

DECIMAL的高精度计算。相对而言,cpu直接支持原生的浮点计算,所以浮点计算明显更快。

涉及到金额计算,在数据量比较大的时候,可以考虑用BIGINT代替DECIMAL。例如金额单位精确到分,

99.99可以用9999表示,以分为单位存储在BIGINT字段里,这样可以同时避免浮点数计算的不精确和

DECIMAL精确计算代价高的问题。

JSON类型

mysql8支持直接存储json格式字符串,对应的是json数据类型。

json数据列会自动验证json的数据格式,如果格式不正确会报错。

最优化存储格式。json数据类型会把json格式的字符串转换成内部格式,能够快速的读取其中的元

素。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!