|
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)