MySQL支持可选择在基本关键字的括号中指定整数数据类型的显示宽度的扩展名。例如,INT (4)
指定A.INT
显示宽度为四位数。应用程序可以使用该可选显示宽度来显示宽度小于用空格的左填充到列为列指定的宽度的整数值。(即,使用结果集返回的元数据中存在此宽度。是否使用它是达到应用程序。)
显示宽度为不是约束可以存储在列中的值范围。它也不是防止宽的值,而不是正确显示列显示宽度。例如,指定为的列smallint(3)
通常有短整型
范围-32768年
至32767
,并且在三位数允许的范围之外的值以超过三位数字完全显示。
与可选(非标准)结合使用时补零
属性时,空格的默认填充将被替换为零。例如,对于声明为的列INT(4)补零
,价值5.
被检索为0005.
.
这补零
表达式中涉及的列忽略属性或联盟
查询。
如果将大于显示宽度的值存储在具有补零
属性,当MySQL为某些复杂连接生成临时表时,您可能会遇到问题。在这些情况下,MySQL假定数据值适合列显示宽度。
所有整数类型都可以有一个可选(非标准)无符号
属性。unsigned类型可用于仅允许列中的非负数,或者当需要为列设置更大的上限数字范围时。例如,如果INT
列是无符号
,列范围的大小是相同的,但其端点转移,来自-2147483648
和2147483647
至0.
和4294967295
.
浮点类型和定点类型也可以无符号
.与Integer类型一样,此属性可防止存储在列中的负值。与整数类型不同,列值的上部范围保持不变。
如果您指定补零
对于数字列,MySQL会自动添加无符号
属性。
整数或浮点数据类型可以具有AUTO_INCREMENT
属性。插入值时零
进入索引AUTO_INCREMENT
列,该列被设置为下一个序列值。通常这是
, 在哪里价值
+1价值
是目前表中的列的最大值。(AUTO_INCREMENT
序列首先1
.)
存储0.
进入AUTO_INCREMENT
列具有与存储相同的效果零
,除非no_auto_value_on_zero.
已启用SQL模式。
插入零
生成AUTO_INCREMENT
值要求声明列没有空
.如果宣布列零
,插入零
商店A.零
.当您将任何其他值插入AUTO_INCREMENT
列,列被设置为该值,并且序列被重置,以便从插入的值顺序地按顺序地遵循下一个自动生成的值。
负值AUTO_INCREMENT
不支持列。