主页 > MySQL教程 > 正文

Mysql中 int(10)和int(11)的差异

int(M) M指示最大显现宽度。最大有用显现宽度是255。显现宽度与存储巨细或类型包含的值的规模无关

首先说一下MySQL的数值类型,MySQL支撑一切规范SQL数值数据类型。这些类型包含严厉数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。要害字INT是INTEGER的近义词,要害字DEC是DECIMAL的近义词。


BIT数据类型保存位字段值,而且支撑MyISAM、MEMORY、InnoDB和BDB表。


作为SQL规范的扩展,MySQL也支撑整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显现了需求的每个整数类型的存储和规模。

类型字节最小值最大值(带符号的)
TINYINT1-128 127
SMALLINT2-3276832767
MEDIUMINT3-83886088388607
INT4-21474836482147483647
BIGINT8-92233720368547758089223372036854775807


Mysql类型要害字后边的括号内指定整数值的显现宽度(例如,INT(4))。该可选显现宽度规则用于显现宽度小于指定的列宽度的值时从左边填满宽度。显现宽度并不束缚能够在列内保存的值的规模,也不束缚超越列的指定宽度的值的显现。


当结合可选扩展特点ZEROFILL运用时, 默许弥补的空格用零替代。例如,关于声明为INT(5) ZEROFILL的列,值4检索为00004。请注意假如在整数列保存超越显现宽度的一个值,当MySQL为杂乱联接生成暂时表时会遇到问题,由于在这些情况下MySQL信任数据合适原列宽度。


一切整数类型能够有一个可选(非规范)特点UNSIGNED。当你想要在列内只答应非负数和该列需求较大的上限数值规模时能够运用无符号值。


所以int(10)与int(11)后的括号中的字符表明显现宽度,整数列的显现宽度与mysql需求用多少个字符来显现该列数值,与该整数需求的存储空间的巨细都没有联系,int类型的字段能存储的数据上限仍是2147483647(有符号型)和4294967295(无符号型)。



浮点和定点类型也能够为UNSIGNED。同数类型,该特点避免负值保存到列中。但是,与整数类型不同的是,列值的上规模坚持不变。


假如为一个数值列指定ZEROFILL,MySQL主动为该列增加UNSIGNED特点。


关于浮点列类型,在MySQL中单精度值运用4个字节,双精度值运用8个字节。


FLOAT类型用于表明近似数值数据类型。SQL规范答应在要害字FLOAT后边的括号内挑选用位指定精度(但不能为指数规模)。MySQL还支撑可选的只用于确认存储巨细的精度规则。0到23的精度对应FLOAT列的4字节单精度。24到53的精度对应DOUBLE列的8字节双精度。


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。


MySQL将DOUBLE视为DOUBLE PRECISION(非规范扩展)的近义词。MySQL还将REAL视为DOUBLE PRECISION(非规范扩展)的近义词,除非SQL服务器方式包含REAL_AS_FLOAT选项。


为了确保最大或许的可移植性,需求运用近似数值数据值存储的代码应运用FLOAT或DOUBLE PRECISION,不规则精度或位数。


DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存有必要为切当精度的值,例如钱银数据。当声明该类型的列时,能够(而且一般要)指定精度和标度;例如:


salary DECIMAL(5,2)

在该比如中,5是精度,2是标度。精度表明保存值的首要位数,标度表明小数点后边能够保存的位数。


在MySQL 5.1中以二进制格局保存DECIMAL和NUMERIC值。


规范SQL要求salary列能够用5位整数位和两位小数保存任何值。因而,在这种情况下能够保存在salary列的值的规模是从-999.99到999.99。


在规范SQL中,语法DECIMAL(M)等价于DECIMAL(M,0)。相同,语法DECIMAL等价于DECIMAL(M,0),能够经过核算确认M的值。在MySQL 5.1中支撑DECIMAL和NUMERIC数据类型的变量方式。M默许值是10。


DECIMAL或NUMERIC的最大位数是65,但详细的DECIMAL或NUMERIC列的实践规模受详细列的精度或标度束缚。假如此类列分配的值小数点后边的位数超越指定的标度答应的规模,值被转化为该标度。(详细操作与操作系统有关,但一般成果均被截取到答应的位数)。


BIT数据类型可用来保存位字段值。BIT(M)类型答应存储M位值。M规模为1到64。


要指定位值,能够运用b’value’符。value是一个用0和1编写的二进制值。例如,b’111′和b’100000000′别离表明7和128。


上一篇:mysql探求之null与not null
下一篇:MySQL中is not null和!=null和<>null的差异

PythonTab微信大众号:

Python技能交流合作群 ( 请勿加多个群 ):

群1: 87464755

群2: 333646237

群3: 318130924

群4: 385100854