Lihat https://dev.mysql.com/doc/ refman/8.0/en/numeric-types.html
-
INTadalah bilangan bulat bertanda empat byte. -
BIGINTadalah bilangan bulat bertanda delapan byte.
Mereka masing-masing menerima tidak lebih dan tidak lebih sedikit nilai daripada yang dapat disimpan dalam jumlah byte masing-masing. Itu berarti 2 nilai dalam INT dan 2 nilai dalam BIGINT .
20 dalam INT(20) dan BIGINT(20) hampir tidak berarti apa-apa. Ini adalah petunjuk untuk lebar tampilan. Ini tidak ada hubungannya dengan penyimpanan, atau rentang nilai yang akan diterima kolom.
Praktis, ini hanya mempengaruhi ZEROFILL pilihan:
CREATE TABLE foo ( bar INT(20) ZEROFILL );
INSERT INTO foo (bar) VALUES (1234);
SELECT bar from foo;
+----------------------+
| bar |
+----------------------+
| 00000000000000001234 |
+----------------------+
Ini adalah sumber kebingungan umum bagi pengguna MySQL untuk melihat INT(20) dan anggap itu batas ukuran, sesuatu yang analog dengan CHAR(20) . Ini tidak terjadi.