MYSQL 中的 int(11) 到底代表什么意思?

  • 各 INT 类型无符号最大值用单位表示:
INT 类型 无符号最大值用单位表示
TINYINT 255
SMALLINT 65535
MEDIUMINT 1677 万
INT 42 亿
BIGINT 1844 亿亿,18446兆(一万亿等于一兆,亿亿就是:十兆;)
  • int(11) 的含义:
  1. 11 代表的并不是长度,而是字符的显示宽度
  2. 在字段类型为int时,无论你显示宽度设置为多少,int类型能存储的最大值和最小值永远都是固定的
  3. 如果没有 ZEROFILL 属性,括号内 int(11) 这个11的数字是毫无意义;比如:INT(4) UNSIGNED ZEROFILL,数据库内部存储是10001只是设置了ZEROFILL属性的一种格式化输出而已(出处:https://www.cnblogs.com/olinux/p/5180543.html)
  4. 推荐自增主键使用 INT UNSIGNED 类型,不建议使用 BIGINT

当int字段类型设置为无符号填充零(UNSIGNED ZEROFILL)时,当数值位数未达到设置的显示宽度时,会在数值前面补充零直到满足设定的显示宽度,为什么会有无符号的限制呢,是因为ZEROFILL属性会隐式地将数值转为无符号型,因此不能存储负的数值。
注意:如果用navicate软件查询出来并不会显示左边的0,但把数据导出时可看到真实的数据,猜测是软件对数据格式进行了处理

  1. 补零“流水号”的生成
  2. 月份或日期前补0

引用:https://segmentfault.com/a/1190000012479448

原文地址:https://www.cnblogs.com/cag2050/p/10330402.html