Spec-Zone .ru
спецификации, руководства, описания, API
|
Сводка типов числовых данных следует. Для дополнительной информации о свойствах и требованиях хранения числовых типов, см. Раздел 11.2, "Числовые Типы", и Раздел 11.6, "Требования Хранения Типа данных".
M
указывает на максимальный дисплей width для целочисленных типов.
Максимальный дисплей width 255. Дисплей width не связан с диапазоном значений тип, может содержать, как описано
в Разделе 11.2, "Числовые
Типы". Для с плавающей точкой и типов фиксированной точки, M
общее количество цифр, которые могут быть сохранены.
Если Вы определяете ZEROFILL
для числового столбца MySQL автоматически добавляет
UNSIGNED
припишите столбцу.
Типы числовых данных, которые разрешают UNSIGNED
припишите также разрешают SIGNED
. Однако, эти типы данных подписываются по умолчанию, таким образом, SIGNED
атрибут не имеет никакого эффекта.
SERIAL
псевдоним для BIGINT UNSIGNED NOT NULL AUTO_INCREMENT
UNIQUE
.
SERIAL DEFAULT VALUE
в определении целочисленного столбца псевдоним для NOT NULL AUTO_INCREMENT UNIQUE
.
Когда Вы используете вычитание между целочисленными значениями, где каждый имеет тип UNSIGNED
, результат не без знака если NO_UNSIGNED_SUBTRACTION
Режим SQL включается. См. Раздел
12.10, "Функции броска и Операторы".
Тип битового поля. M
указывает на число битов на значение,
от 1 до 64. Значение по умолчанию 1 если M
опускается.
TINYINT[(
M
)] [UNSIGNED] [ZEROFILL]
Очень маленькое целое число. Подписанный диапазон -128
к 127
. Диапазон без знака 0
к 255
.
Эти типы являются синонимами для TINYINT(1)
. Значение нуля считают ложью. Ненулевые значения считают
истиной:
mysql>SELECT IF(0, 'true', 'false');
+------------------------+| IF(0, 'true', 'false') |+------------------------+| false |+------------------------+mysql>SELECT IF(1, 'true', 'false');
+------------------------+| IF(1, 'true', 'false') |+------------------------+| true |+------------------------+mysql>SELECT IF(2, 'true', 'false');
+------------------------+| IF(2, 'true', 'false') |+------------------------+| true |+------------------------+
Однако, значения TRUE
и FALSE
просто
псевдонимы для 1
и 0
, соответственно, как
показано здесь:
mysql>SELECT IF(0 = FALSE, 'true', 'false');
+--------------------------------+| IF(0 = FALSE, 'true', 'false') |+--------------------------------+| true |+--------------------------------+mysql>SELECT IF(1 = TRUE, 'true', 'false');
+-------------------------------+| IF(1 = TRUE, 'true', 'false') |+-------------------------------+| true |+-------------------------------+mysql>SELECT IF(2 = TRUE, 'true', 'false');
+-------------------------------+| IF(2 = TRUE, 'true', 'false') |+-------------------------------+| false |+-------------------------------+mysql>SELECT IF(2 = FALSE, 'true', 'false');
+--------------------------------+| IF(2 = FALSE, 'true', 'false') |+--------------------------------+| false |+--------------------------------+
Последние два оператора выводят на экран результаты, показанные потому что 2
не равно ни одному 1
ни 0
.
SMALLINT[(
M
)] [UNSIGNED] [ZEROFILL]
Маленькое целое число. Подписанный диапазон -32768
к 32767
. Диапазон без знака 0
к 65535
.
MEDIUMINT[(
M
)] [UNSIGNED]
[ZEROFILL]
Целое число среднего размера. Подписанный диапазон -8388608
к 8388607
. Диапазон без знака 0
к 16777215
.
INT[(
M
)] [UNSIGNED] [ZEROFILL]
Целое число нормального размера. Подписанный диапазон -2147483648
к
2147483647
. Диапазон без знака 0
к 4294967295
.
INTEGER[(
M
)] [UNSIGNED] [ZEROFILL]
Этот тип является синонимом для INT
.
BIGINT[(
M
)] [UNSIGNED]
[ZEROFILL]
Большое целое число. Подписанный диапазон -9223372036854775808
к 9223372036854775807
. Диапазон без знака 0
к
18446744073709551615
.
SERIAL
псевдоним для BIGINT UNSIGNED NOT NULL
AUTO_INCREMENT UNIQUE
.
Некоторые вещи следует знать относительно BIGINT
столбцы:
Вся арифметика делается,
используя подписанный BIGINT
или DOUBLE
значения, таким образом, недопустимо использовать
большие целые числа без знака, больше чем 9223372036854775807
(63 бита) кроме с разрядными функциями! Если Вы делаете это, некоторые из последних цифр в
результате могут быть неправильными из-за погрешностей округления, преобразовывая a BIGINT
оцените a DOUBLE
.
MySQL может обработать BIGINT
в следующих случаях:
При использовании целых чисел, чтобы сохранить большие
значения без знака в a BIGINT
столбец.
В MIN(
или col_name
)MAX(
, где col_name
)col_name
обращается к a BIGINT
столбец.
При использовании операторов (+
, -
, *
, и так далее), где оба операнда являются целыми
числами.
Можно всегда хранить точное целочисленное значение в a BIGINT
столбец, храня это использующий строку. В этом случае
MySQL выполняет строку к преобразованию чисел, которая не включает промежуточного
представления двойной точности.
-
, +
, и *
использование операторов BIGINT
арифметика, когда оба операнда являются целочисленными
значениями. Это означает, что, если Вы умножаете два больших целых числа (или следует из
функций, которые возвращают целые числа), можно получить неожиданные результаты, когда
результат больше чем 9223372036854775807
.
DECIMAL[(
M
[,D
])]
[UNSIGNED] [ZEROFILL]
Упакованное "точное" число
фиксированной точки. M
общее количество цифр (точность) и
D
число цифр после десятичной точки (масштаб). Десятичная
точка и (для отрицательных чисел)"-
"знак не включается M
. Если D
0,
у значений нет никакой десятичной точки или дробной части. Максимальное количество цифр (M
) для DECIMAL
65. Максимальное количество поддерживаемых десятичных
чисел (D
) 30. Если D
опускается, значение по умолчанию 0. Если M
опускается,
значение по умолчанию 10.
UNSIGNED
, если определено, отвергает отрицательные величины.
Все основные вычисления (+, -, *, /
) с DECIMAL
столбцы делаются с точностью 65 цифр.
DEC[(
, M
[,D
])] [UNSIGNED]
[ZEROFILL]NUMERIC[(
, M
[,D
])]
[UNSIGNED] [ZEROFILL]FIXED[(
M
[,D
])] [UNSIGNED] [ZEROFILL]
Эти типы являются синонимами для DECIMAL
. FIXED
синоним доступен для совместимости с другими системами баз
данных.
FLOAT[(
M
,D
)] [UNSIGNED]
[ZEROFILL]
Маленькое (одинарная точность) число с плавающей точкой. Допустимые значения -3.402823466E+38
к -1.175494351E-38
, 0
, и 1.175494351E-38
к 3.402823466E+38
. Они -
теоретические пределы, основанные на стандарте IEEE. Фактический диапазон мог бы быть немного
меньшим в зависимости от Вашей системы аппаратного обеспечения или операционной системы.
M
общее количество цифр и D
число цифр после десятичной точки. Если M
и D
опускаются, значения сохранены к пределам, разрешенным аппаратными средствами. Одинарная точность
число с плавающей точкой с точностью до приблизительно 7 десятичных разрядов.
UNSIGNED
, если определено, отвергает отрицательные величины.
Используя FLOAT
мог бы дать Вам некоторые неожиданные проблемы, потому что все
вычисления в MySQL делаются с двойной точностью. См. Раздел
C.5.5.7, "Решая проблемы без Соответствия Строк".
DOUBLE[(
M
,D
)] [UNSIGNED]
[ZEROFILL]
Нормальный размер (двойная точность) число с плавающей точкой. Допустимые значения -1.7976931348623157E+308
к -2.2250738585072014E-308
, 0
, и 2.2250738585072014E-308
к 1.7976931348623157E+308
. Они - теоретические пределы, основанные на
стандарте IEEE. Фактический диапазон мог бы быть немного меньшим в зависимости от Вашей системы
аппаратного обеспечения или операционной системы.
M
общее количество цифр и D
число цифр после десятичной точки. Если M
и D
опускаются, значения сохранены к пределам, разрешенным аппаратными средствами. Двойная точность
число с плавающей точкой с точностью до приблизительно 15 десятичных разрядов.
UNSIGNED
, если определено, отвергает отрицательные величины.
DOUBLE
PRECISION[(
, M
,D
)]
[UNSIGNED] [ZEROFILL]REAL[(
M
,D
)] [UNSIGNED] [ZEROFILL]
Эти типы являются синонимами для DOUBLE
. Исключение: Если REAL_AS_FLOAT
Режим SQL включается, REAL
синоним для FLOAT
вместо DOUBLE
.
FLOAT(
p
) [UNSIGNED] [ZEROFILL]
Число с плавающей точкой. p
представляет точность в битах,
но MySQL использует это значение только, чтобы определить, использовать ли FLOAT
или DOUBLE
для получающегося типа данных. Если p
от 0 до 24, тип данных становится FLOAT
без M
или D
значения. Если p
от 25 до 53, тип данных становится DOUBLE
без M
или D
значения. Диапазон получающегося столбца является
тем же самым что касается одинарной точности FLOAT
или двойная точность DOUBLE
типы данных, описанные ранее в этом разделе.
FLOAT(
синтаксис обеспечивается для совместимости
ODBC.p
)