在MySQL表定义中,INT(5)SMALLINT(5)之间是否有所不同?还是它们代表相同的大小?

#1 楼

intsmallint具有不同的大小和范围。
(5)smallint(5)int(5),被称为“数值类型属性”,它表示字段的“显示宽度”,


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

与可选(非标准)属性ZEROFILL结合使用时,默认的空格填充将替换为零。例如,对于声明为INT(4) ZEROFILL的列,将取回5的值作为0005


这是MySQL的“扩展名”,zerofill是扩展名中的“扩展名”。

对于控制数字类型显示的明智方法,请不要使用数字类型属性,而应使用


FORMAT
LPAD
RPAD


评论


该属性在MySQL Workbench中是必需的。如果我的数字为5000,数据类型为SMALLINT(1),该怎么办?数字5000会被截断为一位吗?哪一位?

–posfan12
19/12/16在16:13



请为显示宽度使用此MySQL扩展的名称是什么?

– Christinmtown
20年9月3日于13:58