Подтвердить что ты не робот

Что означает INT (5) в mysql?

Я всегда считал, что INT (5) означает число, которое имеет максимальный размер 5 цифр. Я попытался ввести огромное количество внутри него, и это как-то обрушилось на 2147483647

Это, очевидно, не 5 цифр. Итак, что у INT (5) есть ограничение?

4b9b3361

Ответ 1

Из Документы MySQL, Атрибуты числового типа

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

Ответ 2

INT всегда имеет ширину в четыре байта. 5 - это "ширина экрана".

Ответ 3

В MySQL INT (5) не означает, что значения ограничены 5-значными значениями. Это означает, что MySQL будет пытаться заполнить эти значения пробелами/нулями при их возврате.

Числовой диапазон любых подписанных INT, включая INT (10), INT (5) или любой другой INT (n): -2,147,483,648... 2,147,483,647, что составляет не более 10 цифр.

Ответ 4

http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html

"M указывает максимальную ширину отображения для целочисленных типов. Максимальная допустимая ширина отображения составляет 255. Ширина отображения не связана с диапазоном значений, которые может содержать тип, как описано в разделе 10.2" Числовые типы ""

Ответ 5

https://alexander.kirk.at/2007/08/24/what-does-size-in-intsize-of-mysql-mean/
M указывает максимальную ширину отображения для целых типов. Для типов с плавающей точкой и фиксированной точкой M - это общее количество цифр, которое можно сохранить. Для типов строк M - максимальная длина. Максимально допустимое значение M зависит от типа данных.

Ответ 6

Значение int может находиться между -2147483648 и 2147483647, или 0 и 4294967295 без знака.

Вот почему это было сокращено до этого, если вы ввели число, большее, чем оно, как подписанное значение

Ответ 7

Очень распространенное заблуждение о том, что int (N) означает в MySQL, заключается в том, что в столбце может храниться максимальное целое число длиной N цифр. Однако это не так. int (N) не определяет максимальное значение, которое столбец может хранить в нем. N - ширина отображения столбца целых чисел, в отличие от столбцов символов, где число означает количество символов, которое можно сохранить.

Число в скобках не определяет значения max и min, которые можно сохранить в целочисленном поле. Максимальные и минимальные значения, которые могут быть сохранены, всегда фиксированы. В следующей таблице показано необходимое хранилище и диапазон для каждого целочисленного типа.