mysql的数字类型有哪些?
mysql的数字类型是:INT类型、TINYINT类型、SMALLINT类型、MEDIUMINT类型、BIGINT类型、FLOAT类型、DOUBLE类型、DECIMAL类型。
(引荐教程:mysql视频教程)
mysql的数字类型
1、mysql整数类型
整数类型又称数值型数据,数值型数据类型主要用来储备数字。
MySQL 供给了多种数值型数据类型,不一样的数据类型供给不一样的取值范畴,可以储备的值范畴越大,所需的储备空间也会越大。
MySQL 主要供给的整数类型有 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,其属性字段可以增加 AUTO_INCREMENT 自增束缚前提。下表中列出了 MySQL 中的数值类型。
从上表中可以看到,不一样类型的整数储备所需的字节数不雷同,占用字节数最小的是 TINYINT 类型,占用字节最大的是 BIGINT 类型,占用的字节越多的类型所能表示的数值范畴越大。
按照占用字节数可以求出每一种数据类型的取值范畴。例如,TINYINT 需要 1 个字节(8bit)来储备,那么 TINYINT 无符号数的最大值为 28-1,即 255;TINYINT 有符号数的最大值为 27-1,即 127。其他类型的整数的取值范畴运算办法雷同,如下表所示。
提醒:显示宽度和数据类型的取值范畴是无关的。显示宽度只是指明 MySQL 最大大概显示的数字个数,数值的位数小于指定的宽度时会由空格填充。假如插入了大于显示宽度的值,只要该值不超越该类型整数的取值范畴,数值仍然可以插入,并且能够显示出来。例如,year 字段插入 19999,当使用 SELECT 查询该列值的时候,MySQL 显示的将是完全的带有 5 位数字的 19999,而不是 4 位数字的值。
其他整型数据类型也可以在定义表构造时指定所需的显示宽度,假如不指定,则系统为每一品种型指定默许的宽度值。
不一样的整数类型有不一样的取值范畴,并且需要不一样的储备空间,因此应按照实际需要选中最适宜的类型,这样有益于提高查询的效力和节约储备空间。
2、mysql小数类型
MySQL 中使用浮点数和定点数来表示小数。
浮点类型有两种,离别是单精度浮点数(FLOAT)和双精度浮点数(DOUBLE);定点类型只要一种,就是 DECIMAL。
浮点类型和定点类型都可以用(M, D)来表示,其中M称为精度,表示总共的位数;D称为标度,表示小数的位数。
浮点数类型的取值范畴为 M(1~255)和 D(1~30,且不克不及大于 M-2),离别表示显示宽度和小数位数。M 和 D 在 FLOAT 和DOUBLE 中是可选的,FLOAT 和 DOUBLE 类型将被留存为硬件所支撑的最大精度。DECIMAL 的默许 D 值为 0、M 值为 10。
下表中列出了 MySQL 中的小数类型和储备需求。
DECIMAL 类型不一样于 FLOAT 和 DOUBLE。DOUBLE 实际上是以字符串的情势存置的,DECIMAL 大概的最大取值范畴与 DOUBLE 雷同,但是有效的取值范畴由 M 和 D 决议。假如改动 M 而牢固 D,则取值范畴将随 M 的变大而变大。
从上表中可以看到,DECIMAL 的储备空间并不是牢固的,而由精度值 M 决议,占用 M+2 个字节。
FLOAT 类型的取值范畴如下:
有符号的取值范畴:-3.402823466E+38~-1.175494351E-38。
无符号的取值范畴:0 和 -1.175494351E-38~-3.402823466E+38。
DOUBLE 类型的取值范畴如下:
有符号的取值范畴:-1.7976931348623157E+308~-2.2250738585072014E-308。
无符号的取值范畴:0 和 -2.2250738585072014E-308~-1.7976931348623157E+308。
提醒:不管是定点还是浮点类型,假如会员指定的精度超出精度范畴,则会四舍五入停止处置。
FLOAT 和 DOUBLE 在不指定精度时,默许会依照实际的精度(由运算机硬件和操纵系统决议),DECIMAL 假如不指定精度,默许为(10,0)。
浮点数相关于定点数的长处是在长度必然的状况下,浮点数能够表示更大的范畴;缺陷是会引发精度问题。
最后再强调一下:在 MySQL 中,定点数以字符串情势储备,在对精度要求比力高的时候(如货币、科学数据),使用 DECIMAL 的类型比力好,别的两个浮点数停止减法和比力运算时也容易出问题,所以在使用浮点数时需要留意,并尽量幸免做浮点数比力。
以上就是mysql的数字类型是啥?的具体内容,更多请关注百分百源码网其它相关文章!