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

Является ли BIGINT (8) наибольшим целочисленным mysql?

У меня есть некоторые цифры, которые теперь больше, чем может обрабатывать INT.

Это немного смущает, но я честно не знаю точно, что означает BIGINT (8). Является ли 8 тем, что максимальное значение бита или максимальная длина?

Итак, BIGINT (1) может быть только одной цифрой? Или BIGINT (1) что-то еще? Я думаю, что tinyint (1) max - 127, как это получается?

Какое самое большое я могу сделать BIGINT? Какое максимальное количество я могу хранить в mysql как целое число?

4b9b3361

Ответ 1

Число представляет, как оно отображается - это не влияет на то, как хранятся данные.

Из руководство:

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

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

A BIGINT всегда 8 байтов и может хранить -9223372036854775808 до 9223372036854775807 (подписанный) или от 0 до 18446744073709551615 (без знака).

Ответ 2

Вы отвечаете в этом обзоре. BIGINT действительно 8 байтов. TinyInt только 1.

Btw, я не считаю диапазон от -9223372036854775808 до 9223372036854775807 очень смущенным, это +/- 2 ^ 63:).

Ответ 3

Число просто определяет ширину номера при отображении. Посмотрите руководство по mysql для размеров числовых типов.

Ответ 4

Число между скобками - это "ширина экрана" и не имеет отношения к числу номеров, которые может хранить фактический тип данных.

A Диапазон BIGINT -9223372036854775808 - 9223372036854775807. Диапазон без знака равен 0 - 18446744073709551615.

Вы можете найти более подробную информацию здесь: http://dev.mysql.com/doc/refman/5.4/en/numeric-type-overview.html

Ответ 5

Чтобы сохранить 128-битное целое число, вы можете использовать BINARY (16).

Для 252:

SELECT RIGHT (CONCAT (REPEAT ( "\ 0", 16), UNHEX (CONV (252,10,16))), 16);

или эквивалентно:

ВЫБРАТЬ UNHEX (ПРАВО (CONCAT (REPEAT ( "0", 32), HEX (252)), 32));

(но вычисление целочисленных чисел MySQL - 64-разрядное)

Смотрите также последние функции IPv6 INET6_ATON() и INET6_NTOA(), http://dev.mysql.com/doc/refman/5.6/en/miscellaneous-functions.html#function_inet6-aton и как они используют VARBINARY (16).