Xem http://dev.mysql.com/doc/ refman / 8.0 / en / numeric-styles.html
-
INT
là một số nguyên có dấu bốn byte. -
BIGINT
là một số nguyên có dấu tám byte.
Mỗi chúng chấp nhận không nhiều hơn và không ít giá trị hơn có thể được lưu trữ trong số byte tương ứng của chúng. Điều đó có nghĩa là 2 giá trị trong một INT
và 2 giá trị trong một BIGINT
.
20 trong INT(20)
và BIGINT(20)
nghĩa là hầu như không có gì. Đó là một gợi ý cho chiều rộng màn hình. Nó không liên quan gì đến bộ nhớ, cũng như phạm vi giá trị mà cột sẽ chấp nhận.
Trên thực tế, nó chỉ ảnh hưởng đến ZEROFILL
tùy chọn:
CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;
+----------------------+
| bar |
+----------------------+
| 00000000000000001234 |
+----------------------+
Đây là một nguồn nhầm lẫn phổ biến cho người dùng MySQL khi thấy INT(20)
và giả sử đó là giới hạn kích thước, tương tự như CHAR(20)
. Đây không phải là trường hợp.