假设此表
`publish` INT( 1 ) NOT NULL DEFAULT '0'
可以在此列中输入-1到-9吗?
答案 0 :(得分:2)
是。括号中的数字只是显示宽度:
http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
特别是:
MySQL支持扩展名 可选择指定显示 中的整数数据类型的宽度 base关键字后面的括号 对于类型。例如,INT(4) 指定具有显示宽度的INT 四位数。这个可选的显示 应用程序可以使用宽度 显示具有宽度的整数值 小于指定的宽度 用左边填充它们的列 空间。 (也就是说,这个宽度是 存在于返回的元数据中 结果集。是否使用 取决于申请。)
显示宽度不受约束 可以存储的值范围 在专栏中。它也没有阻止 值比列显示宽 正确显示宽度。 例如,指定为的列 SMALLINT(3)具有通常的SMALLINT 范围-32768到32767,以及值 超出三个允许的范围 数字全部显示使用 超过三位数。
INT类型支持有符号和无符号整数。
答案 1 :(得分:1)
是int(1)可以存储-1到-9。在Mysql中,如果dispayed数字的宽度小于paranthesis中指定的宽度,则类型的base关键字后面的括号仅用于填充0。例如,在使用int(3)时,1将被显示为001。如果数字大于给定宽度,则数字将完全显示。例如,对于int(3),1234将被视为完整1234. paranthesis中的宽度不会影响可存储的实际范围。