一尘不染

我的sql中“ int”和“ int(2)”数据类型之间的区别

mysql

我只是想知道为什么范围是用我的sql数据类型给出的。我定义了一个字段名称为“ id”且数据类型为“ int(2)”的表。我将值插入字段“ id”作为“
123456”。这被接受并存储。那么给出范围的用途是什么。

提前致谢。


阅读 1922

收藏
2020-05-17

共1个答案

一尘不染

对于INT和其他类型,该属性仅指定显示宽度。

请参阅MySQL文档中的数字类型属性

MySQL支持扩展,可以选择在整数类型的基本关键字之后的括号中指定整数数据类型的显示宽度。例如,INT(4)指定显示宽度为四位数的INT。应用程序可以使用此可选的显示宽度来显示整数值,该整数值的宽度小于为列指定的宽度,方法是用空格左键填充它们。(也就是说,此宽度存在于结果集返回的元数据中。是否使用它取决于应用程序。)

显示宽度不限制可以存储在列中的值的范围。也不会阻止宽于列显示宽度的值正确显示。例如,指定为SMALLINT(3)的列通常具有-32768到32767的SMALLINT范围,并且使用三位以上的数字完整显示三位数所允许的范围之外的值。

2020-05-17