MySQL 整型长度的含义

缘起

初学时搞错”整型长度”的含义, 误以为”整型”后面的数字代表的是”允许存储的最大宽度”, 比如, 误以为 int(1) 不能存储 10.

结论

“浮点型”的长度是用来限制数字存储范围的. 比如 float(3,2) 只能够写入 0.00~999.99.

“整型”的长度并不会限制存储的数字范围. 比如, intint(3) 的存储范围都是 -2147483648 ~ 2147483647, int unsignedint(3) unsigned 的存储范围都是0 ~ 4294967295.

“整型”的长度实际上可以理解为”显示长度”, 如果该字段开启 “Zerofill/补零”就能很明显地知道它的作用.

比如, a b c d 分别表示 int(1) int(2) int(3) int(3) zerofill, 那么实际存入数据库的数据是这样的:

1
2
3
4
5
| v  | a  |  b  |  c |  d |
+-----+-----+-----+-----+-----+
| 1 | 1 | 1 | 1 | 001 |
| 10 | 10 | 10 | 10 | 010 |
| 100 | 100 | 100 | 100 | 100 |

PS. 如果开启 “Zerofill/补零”, 则自动会默认为 “Unsigned/非负数”。

文章作者: GeYu
文章链接: https://nuistgy.github.io/2022/12/22/Mysql小细节/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yu's Blog