INT (5) против SMALLINT (5): числа в скобках после числового типа

29

В определениях таблиц MySQL есть различия между INT(5)и SMALLINT(5)? Или они оба представляют одинаковый размер?

BENV
источник

Ответы:

41

An intи a smallintимеют разные размеры и, следовательно, диапазоны. (5)Это smallint(5)или int(5)называется «числовой тип Атрибут» и представляет собой «ширину экрана» поля,

MySQL поддерживает расширение для необязательного указания ширины отображения целочисленных типов данных в скобках после базового ключевого слова для типа. Например, INT(4)указывается INTс шириной отображения четыре цифры. Эта необязательная ширина отображения может использоваться приложениями для отображения целочисленных значений, ширина которых меньше ширины, указанной для столбца, путем добавления их слева с пробелами. (То есть эта ширина присутствует в метаданных, возвращаемых с наборами результатов. Независимо от того, используется она или нет, зависит от приложения.)

При использовании вместе с необязательным (нестандартным) атрибутом ZEROFILLзаполнение пробелов по умолчанию заменяется нулями. Например, для столбца, объявленного как INT(4) ZEROFILL, значение 5извлекается как 0005.

Это расширение MySQL, а zerofill является расширением расширения.

Для нормального метода управления отображением числового типа не используйте атрибуты числового типа и вместо этого используйте

Дерек Дауни
источник