Наведемо приклад для int (10), який має ключове слово zerofill, а ні, таблиці подобається:
create table tb_test_int_type(
int_10 int(10),
int_10_with_zf int(10) zerofill,
unit int unsigned
);
Давайте вставимо деякі дані:
insert into tb_test_int_type(int_10, int_10_with_zf, unit)
values (123456, 123456,3147483647), (123456, 4294967291,3147483647)
;
Тоді
select * from tb_test_int_type;
# int_10, int_10_with_zf, unit
'123456', '0000123456', '3147483647'
'123456', '4294967291', '3147483647'
Ми можемо це бачити
з ключовим словом число zerofillменше 10 заповнить 0, але без zerofillнього не вийде
По-друге, за ключовим словом zerofillint_10_with_zf стає неподписаним типом int, якщо вставити мінус, ви отримаєте помилку Out of range value for column...... Але ви можете вставити мінус до int_10. Також якщо ви вставите 4294967291 до int_10, ви отримаєте помилкуOut of range value for column.....
Висновок:
int (X) без ключового слова zerofill, дорівнює діапазону int -2147483648 ~ 2147483647
int (X) з ключовим словом zerofill, поле дорівнює неподписаному діапазону int 0 ~ 4294967295, якщо довжина num менша ніж X, вона заповнить 0 зліва