Spec-Zone .ru
спецификации, руководства, описания, API

11.2.5. Числовые Атрибуты типа

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

width дисплея не ограничивает диапазон значений, которые могут быть сохранены в столбце. И при этом это не предотвращает значения шире, чем столбец выводит на экран width от того, чтобы быть выведенным на экран правильно. Например, столбец, определенный как SMALLINT(3) имеет обычное SMALLINT диапазон -32768 к 32767, и значения вне диапазона, разрешенного тремя цифрами, выводятся на экран в полном использовании больше чем трех цифр.

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

Отметить

ZEROFILL атрибут игнорируется, когда столбец включается в выражения или UNION запросы.

Если Вы храните значения, больше чем дисплей width в целочисленном столбце, который имеет ZEROFILL атрибут, можно испытать проблемы, когда MySQL генерирует временные таблицы для некоторых сложных соединений. В этих случаях MySQL предполагает, что подгонка значений данных в пределах столбца выводит на экран width.

У всех целочисленных типов может быть дополнительный (нестандартный) атрибут UNSIGNED. Тип без знака может использоваться, чтобы разрешить только неотрицательные числа в столбце или когда Вы нуждаетесь в большем верхнем числовом диапазоне для столбца. Например, если INT столбец UNSIGNED, размер диапазона столбца является тем же самым, но его сдвигом конечных точек от -2147483648 и 2147483647 до 0 и 4294967295.

С плавающей точкой и типы фиксированной точки также может быть UNSIGNED. Как с целочисленными типами, этот атрибут препятствует тому, чтобы отрицательные величины были сохранены в столбце. В отличие от целочисленных типов, верхний диапазон значений столбцов остается тем же самым.

Если Вы определяете ZEROFILL для числового столбца MySQL автоматически добавляет UNSIGNED припишите столбцу.

У целочисленных или типов данных с плавающей точкой может быть дополнительный атрибут AUTO_INCREMENT. Когда Вы вставляете значение NULL (рекомендуемый) или 0 в индексированный AUTO_INCREMENT столбец, столбец устанавливается в следующее значение последовательности. Обычно это value+1, где value самое большое значение для столбца в настоящий момент в таблице. AUTO_INCREMENT последовательности начинаются 1.