mysql数字数据类型numeric用法

发布时间:2020-03-26编辑:脚本学堂
有关 mysql数字数据类型numeric的用法,mysql数字数据类型语法,以及mysql数字数据类型的用法,需要的朋友参考下。

mysql数字数据类型numeric用法

mysql能够支持所有标准sql的数字数据类型。这些数据类型包括能够表示精确值的类型,例如:integer、smallint decimal和numeric等,同时也包括表示近似值的数据类型,例如:float、real和double precision等。

在mysql中,关键字int与integer的等价,而dec和fixed与decimal等价,double与double precision等价。
在未开启real as float模式的情况下,mysql中将real数据类型视作double precision(一种非标准的变种形式)。

mysql中支持标准sql整型数据类型:integer(int)和smallint。
同时,作为对标准的扩展,mysql同样支持tinyint、mediumint和bigint整型数据类型。

各个整型数据类型所需要的存储空间和所能够表示的数据范围。

mysql数字数据类型numeric用法

float和double类型表示近似值的数据类型。在mysql中,使用四个字节来表示单精度值,而使用八个字节来表示双精度值。
对于float,sql标准允许在float关键字之后的圆括号中指定所表示的精度,但是并不允许指定指数的范围。
在mysql中,同样可以指定精度,但是该精度值仅仅用于确定所需存储空间的大小。

如果指定的精度在(0 23)之间,mysql便会选取一个具有四个字节的单精度float列,但是如果精度值在(24 53)之间,那么便会选用一个具有八个字节的双精度double列。

在mysql中,同样支持一种非标准的语法:float(m, d)、real(m, d)和double precision(m, d)。此处,(m, d)表示数据值最大可以具有m个数字,在小数点之后可以有d个数字。

例如:如果将一个列定义为float(7, 4),那么该列在显示时会具有类似-999.9999这样的格式。需要注意的是,mysql在存储值时会进行舍入操作。

如果向一个定义为float(7, 4)类型的列中插入999.00009,那么最终保存的近似值便是999.0001。

定点(fixed-point)类型:
decimal和numeric数据类型会存储精确的数据值。这些数据类型可以用在对精度要求很高的情况下。在mysql中,numeric被实现为decimal。

因此,对decimal适用的性质同样也适用于numeric。

注意,在mysql 5.5中将deciaml值存储为二进制格式。

在一个decimal列声明中,精度和小数位数可以同时指定,例如:salary decimal(5, 2),该类型可以表示的数据范围为-999.99至999.99。

在标准sql中,decimal(m)等价于decimal(m, 0)。类似地,decimal等价于decimal(m, 0),这里m的值由具体的实现来决定,mysql同时支持这两种格式的语法,并且默认的m的值为10。decimal类型所能表示的数据的最大位数为65,但是一个给定decimal列的实际范围由指定的列的精度和小数位数来共同约束。

bit-value类型:
bit数据类型可以用来存储bit-field值。一个bit(m)的类型能够存储具有m bits的值,m的值可以从1至64。
如果分配的值小于m bits,那么值的左侧将会补零。
  
注意,对于整型数据类型,mysql中可以指定显示的宽度。

例如,int(4)将会指定一个由四个数字组成的int。
如果所存储的值的数字个数小于指定的范围,数字的左侧便会补白。

显示宽度并不会约束值的表示范围,也不会阻止超出宽度的值插入该列。

如果值的显示宽度超出指定的范围,那么该值会全部显示出来。