Số trong ngoặc INT(7) chỉ là display width (độ rộng hiển thị), KHÔNG giới hạn phạm vi lưu trữ.
Giải thích chi tiết
INTluôn chiếm 4 bytes (32-bit signed).- Phạm vi:
-2,147,483,648đến2,147,483,647. INT(7)chỉ ảnh hưởng khi dùng kết hợpZEROFILL.
Ví dụ với ZEROFILL
mysql> CREATE TABLE DisplayInt (Number INT(7) ZEROFILL); Query OK, 0 rows affected (1.25 sec) mysql> INSERT INTO DisplayInt VALUES (1), (12), (1234), (12345), (1234567); Query OK, 5 rows affected
Kết quả:
+---------+ | Number | +---------+ | 0000001 | | 0000012 | | 0001234 | | 0012345 | | 1234567 | +---------+
Giá trị được đệm số 0 ở đầu để đủ 7 ký tự.
Lưu ý quan trọng
- Không giới hạn giá trị: Vẫn chèn được 12345678 (8 chữ số) vào INT(7).
- ZEROFILL ngầm hiểu là
UNSIGNED(không âm). Phạm vi: 0 đến 4,294,967,295. - Không ảnh hưởng hiệu năng hay dung lượng lưu trữ.
- MySQL 8.0.17+ khuyến cáo không dùng
ZEROFILLvà display width (sẽ bị loại bỏ).
Tóm tắt
| Đặc điểm | INT | INT(7) | INT(7) ZEROFILL |
|---|---|---|---|
| Kích thước lưu trữ | 4 bytes | 4 bytes | 4 bytes |
| Phạm vi giá trị | -2.1B ~ 2.1B | -2.1B ~ 2.1B | 0 ~ 4.2B |
| Hiển thị | Bình thường | Bình thường | Đệm 0 trái |