mysql 中整形后面带的数字是什么意思

384 阅读1分钟

今天在一次建表过程中,一个主键是自动递增的int类型,发现之前的前辈将int设置成了11位,就对此产生了好奇,11代表什么意思,最大长度? 数据库预留长度?

经过上网查阅资料和动手实践,发现两种说法都是错误的。

建表语句:

CREATE TABLE `int` (
  `sun_tinyint` tinyint(3) unsigned zerofill DEFAULT NULL,
  `sun_int` int(10) unsigned zerofill DEFAULT NULL,
  `sun_bigint` bigint(20) unsigned zerofill DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

不扯中间过程了,直接写结论吧

结论:

每个整数类型都有固定长度,输入只受固定长度影响,比如tinyint长度为1个字节,只能输入(-128,,127)个数,即使你把tinyint设置成10000,最大也只能输入127

设置的数字的意思是,如果你使用0填充,那么最小可显示长度是多少 如果没有设置zerofill,在整数后面设置数字没有任何意义。