diE*_*cho 50 mysql int types unsigned-integer
在MySQL中,如果我们创建一个字段dataType INT
并且没有指定任何长度/值,那么它会自动变为int(11)
,如果我们设置属性UNSIGNED或UNSIGNED ZEROFILL然后它变成int(10)
这 长度(1)在哪里?
Sha*_*ngh 69
int值可以是-2147483648这些是11位数,因此默认显示大小为11
unsigned int不允许使用负数,因此默认情况下它只需要显示大小为10
如下面的文档所示,存储SIGNED INT和UNSIGNED INT所需的位数相同,可存储数字的范围仅移位:
无符号类型可用于仅允许列中的非负数,或者当您需要列的较大上限数字范围时.例如,如果INT列为UNSIGNED,则列的范围大小相同,但其端点从-2147483648和2147483647更改为0和4294967295.
http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
只是因为任何人都不太了解Shakti的答案(因为我没有).以下是为什么的直观表示:
Signed minimum:
- 2 1 4 7 4 8 3 6 4 8
1 2 3 4 5 6 7 8 9 10 11
Unsigned max (also the signed max):
4 2 9 4 9 6 7 2 9 5
1 2 3 4 5 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)