MySQL int 类型长度有啥用? int(11) 和 int(20) 有啥区别?

479 阅读1分钟

MySQL int 类型长度有啥用?

数值类型设置的长度并不影响该数值字段的取值范围 所以正常来说没什么用。

其长度只有在设置 ZEROFILL 即 “填充零” 后才有所意义。

在这里插入图片描述

比如 int(3) 存储 1 ,填充零时会填充为 001。

包括以下数值类型字段:

类型字节有符号取值范围无符号取值范围默认宽度
TINYINT1-128 ~ 1270 ~ 2554
SMALLINT2-32768 ~ 327670 ~ 655356
MEDIUMINT3-8388608 ~ 83886070 ~ 167772159
INT4-2147483648 ~ 21474836470 ~ 429496729511
BIGINT8-9223372036854775808 ~ 92233720368547758070 ~ 1844674407370955161520

此处默认宽度应该是按 无符号最大值位数 + 1 来计算

而其他 char 和 varchar 是实实在在表示字节大小范围,在UTF-8编码下,char(1)则表示只能存1个字符(汉字),char(5)则表示只能存5个字符(汉字)