一尘不染

MySQL中的类型:BigInt(20)与Int(20)

mysql

我想知道什么之间的区别BigIntMediumInt以及Int在…这似乎很明显,他们将允许更大的数字;
但是,我可以使一个Int(20)或一个BigInt(20)看起来似乎不一定与大小有关。

一些见识会很棒,只是有点好奇。我使用 MySQL 已有一段时间,并在选择类型时尝试满足业务需求,但是我从不理解这一方面。


阅读 848

收藏
2020-05-17

共1个答案

一尘不染

http://dev.mysql.com/doc/refman/8.0/en/numeric-
types.html

  • INT 是一个四字节有符号整数。

  • BIGINT 是一个八字节有符号整数。

它们各自接受的值不超过可以存储在其各自字节数中的值。表示中的2 32个值INT和中的2 64个值BIGINT

20 in INT(20)BIGINT(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)。不是这种情况。

2020-05-17