10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 本手册下载 从本手册中摘录

12.25.2十进制数据类型特性

本节讨论十进制数据类型(及其同义词),具体涉及以下主题:

  • 最大位数

  • 存储格式

  • 存储需求

  • 非标准MySQL扩展到上限十进制

声明语法的一个十进制列是小数(D.参数的取值范围如下:

  • 是最大位数(精度)。它的范围为1到65。

  • D是小数点(刻度)右边的位数。取值范围是0 ~ 30,不能大于

如果D省略,默认为0.如果省略,默认为10。

最大值为65意味着计算十进制值的精确度可达65位。65位精度的限制也适用于精确数值字面量,因此这种字面量的最大范围与以前不同。(文本的长度也有限制十进制文字是什么;看到第12.25.3节“表达处理”.)

价值十进制使用二进制格式存储列,该格式将九个十进制数字包装成4个字节。每个值的整数和分数部分的存储要求是单独确定的。九位数的每个倍数需要4个字节,并且剩下的任何剩余数字都需要一些4个字节。剩余数字所需的存储由下表给出。

剩下的数字 的字节数
0 0
1 - 2 1
3-4 2
5-6 3.
7号到9号 4

例如,一个十进制(18,9)列在小数点的两侧有九个数字,因此整数部分和分数部分每个都需要4个字节。一个小数(20,6)列有14个整数和6个小数。整数位数的9位需要4字节,其余5位需要3字节。六个小数点需要3个字节。

十进制列不存储领先+性格或者-字符或领导0位数。如果你插入+0003.1.进入A.小数(5、1)列,则将其存储为3.1.对于负数,是一个字面值-字符不被存储。

十进制列不允许值大于列定义所隐含的范围。例如,一个小数(0)列支持的范围-999999.一个小数(D列允许-D小数点左边的数位。

SQL标准要求数字(D确切地位数。为小数(D,标准要求精度至少为数字,但允许更多。在MySQL中,小数(D数字(D是一样的,并且两者的精度都是精确的吗位数。

的内部格式的完整说明十进制值,请参见文件strings / decimal.c.在MySQL源分发中。该格式被解释(用示例)Decimal2bin()函数。