【MySQL】MySQL数据类型宽度

MySQL中整数数据类型



【MySQL】MySQL数据类型宽度

上图:MySQL的整数类型

MySQL中数据类型的显示宽度


显示宽度只是指明MYSQL最大可能显示的数字个数,数值的位数小于指定的宽度时会有空格填充,取决于你的设置。如果插入了大于显示宽度的值,只要该值不超过该类型的取值范围,数值依然可以插入显示出来。


创建表时,可以在INT后面加入数值。请注意这个数值不代表数据的长度。例如id字段的数据类型为INT(4),注意到后面的数字4,这表示的是该数据类型指定的显示宽度,指定能够显示的数值中数字的个数,实际存储的长度还是上表中INT的取值范围即-2147483648~2147483648。



来看一个例子:



【MySQL】MySQL数据类型宽度


上图中在创建表时列指定了zerofill,如果存入12,那么查询出来的结果就是0000000012,左边用0来填充。如果我们没有指定zerofill,默认用空格来填充


显示宽度和数据类型的取值范围是无关的


当我们没有指定数据类型的显示宽度,它的默认值如下:


TINYINT[(M)] [UNSIGNED] [ZEROFILL]  M默认为4,占1个字节


SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6


MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9


INT[(M)] [UNSIGNED] [ZEROFILL]   M默认为11


BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20



注意:这里的M代表的并不是存储在数据库中的具体的长度



注意事项

显示宽度只用于显示,并不能限制取值范围和占用空间。比如INT(3)会占用4个字节的存储空间。