10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 235.6 kb
手册页(邮政编码)- 347.2 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

12.22.2 DECIMAL数据类型特征

本节讨论的特性小数数据类型(及其同义词),特别是关于以下主题:

  • 最大数字数

  • 存储格式

  • 存储需求

  • 的上范围的非标准MySQL扩展小数

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

  • 是最大数字数(精度)。取值范围是1 ~ 65。

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

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

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

小数列使用二进制格式存储,该格式将9个十进制数字打包到4个字节中。每个值的整数部分和小数部分的存储要求分别确定。每个9位数的倍数需要4个字节,剩下的数字需要4字节的一部分。剩余数字所需的存储由下表给出。

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

例如,一个小数(18、9)列的小数点两边各有9位,因此整数部分和小数部分各需要4字节。一个小数(20,6)列有14个整数和6个小数。整数数字中9位占用4个字节,其余5位占用3个字节。6个小数需要3个字节。

小数列不存储前导+字符或-字符或领导0位数。如果你插入+ 0003.1成一个小数(5、1)列,它被存储为3.1.对于负数,是字面的-字符不存储。

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

SQL标准要求的精度数字(D完全位数。为小数(D,标准要求精度至少数字,但允许更多。在MySQL中,小数(D而且数字(D都是一样的,而且都有精确到位数。

的内部格式的完整解释小数值,参见文件字符串/ decimal.c在MySQL源码发行版中。格式解释(用一个示例)在decimal2bin ()函数。