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ó zerofill
nó 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