В определениях таблиц MySQL есть различия между INT(5)
и SMALLINT(5)
? Или они оба представляют одинаковый размер?
An int
и a smallint
имеют разные размеры и, следовательно, диапазоны. (5)
Это smallint(5)
или int(5)
называется «числовой тип Атрибут» и представляет собой «ширину экрана» поля,
MySQL поддерживает расширение для необязательного указания ширины отображения целочисленных типов данных в скобках после базового ключевого слова для типа. Например,
INT(4)
указываетсяINT
с шириной отображения четыре цифры. Эта необязательная ширина отображения может использоваться приложениями для отображения целочисленных значений, ширина которых меньше ширины, указанной для столбца, путем добавления их слева с пробелами. (То есть эта ширина присутствует в метаданных, возвращаемых с наборами результатов. Независимо от того, используется она или нет, зависит от приложения.)При использовании вместе с необязательным (нестандартным) атрибутом
ZEROFILL
заполнение пробелов по умолчанию заменяется нулями. Например, для столбца, объявленного какINT(4) ZEROFILL
, значение5
извлекается как0005
.
Это расширение MySQL, а zerofill является расширением расширения.
Для нормального метода управления отображением числового типа не используйте атрибуты числового типа и вместо этого используйте