Hãy lấy một ví dụ cho int (10) một với từ khóa zerofill, một không, bảng thích:
create table tb_test_int_type(
int_10 int(10),
int_10_with_zf int(10) zerofill,
unit int unsigned
);
Hãy chèn một số dữ liệu:
insert into tb_test_int_type(int_10, int_10_with_zf, unit)
values (123456, 123456,3147483647), (123456, 4294967291,3147483647)
;
Sau đó
select * from tb_test_int_type;
# int_10, int_10_with_zf, unit
'123456', '0000123456', '3147483647'
'123456', '4294967291', '3147483647'
Chúng tôi có thể thấy điều đó
với từ khóa zerofill, num dưới 10 sẽ điền 0, nhưng không có zerofillnó sẽ không
Thứ hai với từ khóa zerofill, int_10_with_zf trở thành kiểu int không dấu, nếu bạn chèn một dấu trừ bạn sẽ gặp lỗi Out of range value for column...... Nhưng bạn có thể chèn trừ vào int_10. Ngoài ra nếu bạn chèn 4294967291 vào int_10, bạn sẽ gặp lỗiOut of range value for column.....
Phần kết luận:
int (X) không có từ khóa zerofill, bằng với phạm vi int -2147483648 ~ 2147483647
int (X) với từ khóa zerofill, trường bằng với phạm vi int không dấu 0 ~ 4294967295, nếu độ dài của num nhỏ hơn X, nó sẽ điền 0 sang trái