MySQL: зачем указывать ширину дисплея без использования zerofill
Недавно я погрузился в захватывающий мир SQL. Я все еще пытаюсь обернуть голову вокруг понятий. Я следовал за учебниками онлайн. Многие из этих руководств содержат SQL для создания такой таблицы.
CREATE TABLE `users` (
`id` tinyint(4) NOT NULL AUTO_INCREMENT,
`username` varchar(10) NOT NULL,
`password` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
После просмотра строк, какid tinyint(4)
Мне было интересно, какой параметр передается типу данных. Я думал "Означает ли это, что id может быть любым целым числом от -128 до 127 (не более 4 символов)? "
Поэтому я сверился с документами. Это то, чтоMySQL документы должны сказать об атрибутах числового типа.
Ширина отображения не ограничивает диапазон значений, которые могут быть сохранены в столбце. Также это не препятствует правильному отображению значений, более широких, чем ширина отображения столбца. Например, столбец, указанный как SMALLINT (3), имеет обычный диапазон SMALLINT от -32768 до 32767, а значения, выходящие за пределы диапазона, разрешенного тремя цифрами, отображаются полностью, используя более трех цифр.
При использовании вместе с необязательным (нестандартным) атрибутом ZEROFILL заполнение пробелов по умолчанию заменяется нулями. Например, для столбца, объявленного как INT (4) ZEROFILL, значение 5 извлекается как 0005.
Так что если яЯ читаю это право, объявляя такие вещи, какINT(255)
бесполезны, если вы не используете Zerofill. Хорошо, имеет смысл объявить тип данных, в котором база данных выделяет достаточно места для этой базы данных.
Так почему же люди пишут такой код? Это служит цели? Я полностью недопонимаю?