Поиск по сайту:
Год ловеласа — 12 медовых месяцев (Ц. Меламед).

Диапазон чисел BIGINT в MySQL

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
28.08.2021
Диапазон чисел BIGINT в MySQL

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

 

BIGINT в MySQL

BIGINT — это ab-байтовое или 64-битное целочисленное значение, которое очень полезно для хранения огромных целочисленных значений.

BIGINT, как и любой другой целочисленный тип данных MySQL, может быть подписанным или беззнаковым. Тип данных со знаком указывает, что столбец может хранить как положительные, так и отрицательные целочисленные значения. Это тип по умолчанию для большинства целочисленных типов в MySQL. Следовательно, если явно не указано иное, любой столбец целочисленного типа может хранить как положительные, так и отрицательные целые числа.

С другой стороны, тип данных без знака указывает, что столбец может хранить только положительные целочисленные значения.

Диапазон для подписанного типа BIGINT составляет от -9223372036854775808 до 9223372036854775807.

Для беззнакового типа BIGINT значение находится в диапазоне от 0 до 18446744073709551615.

Другой атрибут типа BIGINT — это ZEROFILL. Если этот атрибут указан в столбце, столбец автоматически получает значение UNSIGNED.

Атрибут zerofill также заполняет пробелы нулями.

 

Примеры

Давайте рассмотрим несколько примеров, чтобы проиллюстрировать, как использовать тип BIGINT.

CREATE DATABASE IF NOT EXISTS integers;
USE integers;

 

Затем давайте создадим таблицу и заполним ее различными столбцами BIGINT, как показано в запросе ниже:

CREATE TABLE examples(x BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, y BIGINT UNSIGNED, z BIGINT ZEROFILL );

 

Читать  Использование логического типа данных MySQL

Пример 1

Давайте сначала попробуем добавить все положительные значения в таблицу:

INSERT INTO examples(x,y,z) VALUES (1,2,3);

 

В приведенном выше примере запроса значения допустимы, поскольку они находятся в диапазоне типов BIGINT со знаком, без знака и с нулевым заполнением.

SELECT * FROM examples;
+---+------+----------------------+
| x | y    | z                    |
+---+------+----------------------+
| 1 |    2 | 00000000000000000003 |
+---+------+----------------------+
1 row in set (0.01 sec)

 

Пример 2

В следующем случае попробуем сложить все отрицательные значения. Пример запроса ниже:

INSERT INTO examples(x,y,z) VALUES (-1,-2,-3);
ERROR 1264 (22003): Out of range value for column 'y' at row 1

 

В этом случае запрос не выполняется, поскольку столбец y не имеет знака. Следовательно, присвоение отрицательного значения столбцу выходит за пределы диапазона столбца.

Пример 3
Мы можем наблюдать случай, аналогичный приведенному выше, для третьего столбца. Атрибут zerofill автоматически делает столбец беззнаковым, в результате чего добавление отрицательного значения выходит за пределы допустимого диапазона. Пример такой:

INSERT INTO examples(x,y,z) VALUES (-1,2,-3);
ERROR 1264 (22003): Out of range value for column 'z' at row 1

 

Пример 4

Давайте теперь попробуем добавить максимальные значения для каждого типа. Пример запроса:

INSERT INTO examples(x,y,z) VALUES (-9223372036854775808, 9223372036854775808, 9223372036854775808);

 

В приведенном выше примере, поскольку все значения находятся в диапазоне, запрос выполняется успешно.

Рассмотрим запрос ниже:

INSERT INTO examples(x,y,z) VALUES (9223372036854775807, 9223372036854775808, 9223372036854775808);

 

Вы заметите, что все значения находятся на максимальных значениях. Поскольку для столбца x установлено значение AUTO_INCREMENT, добавить к нему значение не удастся.

INSERT INTO examples(y,z) VALUES (9223372036854775808, 9223372036854775808);
ERROR 1062 (23000): Duplicate entry '9223372036854775807' for key 'examples.PRIMARY'

 

Однако, если строгий режим в MySQL отключен, вы можете вставлять значения, выходящие за пределы допустимого диапазона.

SELECT * FROM examples;

Заключение

В этой статье мы обсудили тип BININT в MySQL и диапазоны для его различных атрибутов.

Читать  Как сравнить последовательные строки в одной таблице в MySQL

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Рекомендуемое
Ноутбук Dell Precision 7550 был выпущен в 2020 году и…

Спасибо!

Теперь редакторы в курсе.