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 документы должны сказать об атрибутах типа номера.

The display width does not constrain the range of values that can be stored in the column. Nor does it prevent values wider than the column display width from being displayed correctly. For example, a column specified as SMALLINT(3) has the usual SMALLINT range of -32768 to 32767, and values outside the range permitted by three digits are displayed in full using more than three digits

When used in conjunction with the optional (nonstandard) attribute ZEROFILL, the default padding of spaces is replaced with zeros. For example, for a column declared as INT(4) ZEROFILL, a value of 5 is retrieved as 0005.

Так что, если я читаю это правильно, объявляя такие вещи, какINT(255) бесполезны, если вы не используете Zerofill. Хорошо, имеет смысл объявить тип данных, в котором база данных выделяет достаточно места для этой базы данных.

Так почему же люди пишут такой код? Это служит цели? Я полностью недопонимаю?

Ответы на вопрос(1)

Ваш ответ на вопрос