в MySQL, если мы создадим поле dataType INT
и не укажем ни одной длины/значений, оно автоматически становится int(11)
, и если мы установим атрибут UNSIGNED или UNSIGNED ZEROFILL, то он превращается в int(10)
Где проходит эта длина (1)?
в MySQL, если мы создадим поле dataType INT
и не укажем ни одной длины/значений, оно автоматически становится int(11)
, и если мы установим атрибут UNSIGNED или UNSIGNED ZEROFILL, то он превращается в int(10)
Где проходит эта длина (1)?
Значение int может быть -2147483648, это 11 цифр, поэтому размер по умолчанию <11 >
unsigned int не позволяет отрицательные числа, поэтому по умолчанию ему нужен только дисплей размер 10
Как видно из приведенной ниже документации, количество бит, необходимое для хранения SIGNED INT и UNSIGNED INT, одинаково, диапазон сохраняемых номеров просто сдвигается:
Неподписанный тип может использоваться для разрешения только неотрицательные числа в столбце или когда вам нужен более высокий верхний числовой диапазон для столбца. Для Например, если столбец INT невозможен, размер диапазона столбцов равен но его конечные точки смещаются от -2147483648 и 2147483647 до 0 и 4294967295.
Согласно документации, это число - это просто ширина экрана.
Например, INT (4) указывает INT с шириной отображения в четыре цифры.
Ширина экрана не ограничивает диапазон значений, которые могут быть хранится в столбце. Он также не препятствует значениям, превышающим столбец отображаемая ширина отображается правильно. Например, столбец заданный как SMALLINT (3), имеет обычный диапазон SMALLINT -32768 для 32767, а значения вне диапазона, допустимого тремя цифрами, равны отображается полностью, используя более трех цифр.
Ширина экрана по умолчанию для UNSIGNED
INT
меньше, чем для не UNSIGNED
INT
просто потому, что вы никогда не будете показывать символ -
.
Обратите внимание, что вы все равно можете указать любую ширину экрана. Это только по умолчанию.
Использование термина "цифры" в документации немного вводит в заблуждение здесь.
Просто выйди, кто-то не совсем понимает ответ Шакти (как я этого не делал). Здесь наглядное представление о том, почему:
Signed minimum:
- 2 1 4 7 4 8 3 6 4 8
1 2 3 4 5 6 7 8 9 10 11
Unsigned max (also the signed max):
4 2 9 4 9 6 7 2 9 5
1 2 3 4 5 6 7 8 9 10