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