我想知道BigInt
、MediumInt
和Int
之间的区别是什么...很明显,他们会考虑更多的人;然而,我可以做Int(20)
或BigInt(20)
,这似乎与尺寸无关.
有些洞察力会很棒,只是有点好奇.我使用MySQL已经有一段时间了,并试图在 Select 类型时应用业务需求,但我从未理解这一点.
我想知道BigInt
、MediumInt
和Int
之间的区别是什么...很明显,他们会考虑更多的人;然而,我可以做Int(20)
或BigInt(20)
,这似乎与尺寸无关.
有些洞察力会很棒,只是有点好奇.我使用MySQL已经有一段时间了,并试图在 Select 类型时应用业务需求,但我从未理解这一点.
见http://dev.mysql.com/doc/refman/8.0/en/numeric-types.html
INT
是一个四字节有符号整数.
BIGINT
是一个八字节有符号整数.
它们各自接受的值不超过或不少于存储在各自字节数中的值.这意味着INT
中有2个32值,BIGINT
中有2个64值.
INT(20)
分之20和BIGINT(20)
分之20几乎毫无意义.这是显示宽度的提示.它与存储无关,也与列接受的值范围无关.
实际上,它只影响ZEROFILL
选项:
CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;
+----------------------+
| bar |
+----------------------+
| 00000000000000001234 |
+----------------------+
MySQL用户看到INT(20)
并假设它是一个大小限制,类似于CHAR(20)
,这是一个常见的困惑来源.事实并非如此.