TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Очень малое целое число. Диапазон со знаком от -128 до 127. Диапазон без знака от 0 до 255. BIT и BOOL являются синонимами для TINYINT(1).
TINYINT эквивалентно TINYINT(4). Для булевых переменных предпочтительнее применять: TINYINT(1) UNSIGNED.
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Малое целое число. Диапазон со знаком от -32768 до 32767. Диапазон без знака от 0 до 65535.
SMALLINT эквивалентно SMALLINT(6).
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
Целое число среднего размера. Диапазон со знаком от -8388608 до 8388607. Диапазон без знака от 0 до 16 777 215.
MEDIUMINT эквивалентно MEDIUMINT(9).
INT[(M)] [UNSIGNED] [ZEROFILL]
Целое число нормального размера. Диапазон со знаком от -2147483648 до 2147483647. Диапазон без знака от 0 до 4 294 967 295. INTEGER[(M)] [UNSIGNED] [ZEROFILL] Синоним для INT.
INT эквивалентно INT(11).
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Большое целое число. Диапазон со знаком от -9223372036854775808 до 9223372036854775807. Диапазон без знака от 0 до 18446744073709551615.
BIGINT эквивалентно BIGINT(20).
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
Малое число с плавающей точкой обычной точности. Допустимые значения: от -3,402823466E+38 до -1,175494351E-38, 0, и от 1,175494351E-38 до 3,402823466E+38. Если указан атрибут UNSIGNED, отрицательные значения недопустимы. Атрибут M указывает количество выводимых пользователю знаков, а атрибут D - количество разрядов, следующих за десятичной точкой.
По умолчанию FLOAT(255,30)
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
Число с плавающей точкой удвоенной точности нормального размера. Допустимые значения: от -1,7976931348623157E+308 до -2,2250738585072014E-308, 0, и от 2,2250738585072014E-308 до 1,7976931348623157E+308. Если указан атрибут UNSIGNED, отрицательные значения недопустимы. Атрибут M указывает количество выводимых пользователю знаков, а атрибут D - количество разрядов, следующих за десятичной точкой. Обозначение DOUBLE без указания параметров справедливо для числа с плавающей точкой двойной точности. DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL] и REAL[(M,D)] [UNSIGNED] [ZEROFILL] являются синонимами для DOUBLE.
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]
"Неупакованное'' число с плавающей точкой. Ведет себя подобно столбцу CHAR, содержащему цифровое значение. Термин ``неупакованное'' означает, что число хранится в виде строки и при этом для каждого десятичного знака используется один символ. Разделительный знак десятичных разрядов, а также знак `-' для отрицательных чисел не учитываются в M (но место для них зарезервировано). Если атрибут D равен 0, величины будут представлены без десятичного знака, т.е. без дробной части. Максимальный интервал значений типа DECIMAL тот же, что и для типа DOUBLE, но действительный интервал для конкретного столбца DECIMAL может быть ограничен выбором значений атрибутов M и D. Если указан атрибут UNSIGNED, отрицательные значения недопустимы. Если атрибут D не указан, его значение по умолчанию равно 0. Если не указан M, его значение по умолчанию равно 10. В более ранних, чем MySQL 3.23, версиях параметр M должен содержать в себе место для знака числа и десятичного знака. DEC[(M[,D])] [UNSIGNED] [ZEROFILL] и NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL] являются синонимами для DECIMAL.
DECIMAL эквивалентно DECIMAL(10,0).
DATE
Дата. Поддерживается интервал от '1000-01-01' до '9999-12-31'. MySQL выводит значения DATE в формате 'YYYY-MM-DD', но можно установить значения в столбец DATE, используя как строки, так и числа.
DATETIME
Комбинация даты и времени. Поддерживается интервал от '1000-01-01 00:00:00' до '9999-12-31 23:59:59'. MySQL выводит значения DATETIME в формате 'YYYY-MM-DD HH:MM:SS', но можно устанавливать значения в столбце DATETIME, используя как строки, так и числа.
TIMESTAMP[(M)]
Временная метка. Интервал от '1970-01-01 00:00:00' до некоторого значения времени в 2037 году. MySQL выводит значения TIMESTAMP в форматах YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD или YYMMDD в зависимости от значений M: 14 (или отсутствующее), 12, 8, или 6; но можно также устанавливать значения в столбце TIMESTAMP, используя как строки, так и числа. Столбец TIMESTAMP полезен для записи даты и времени при выполнении операций INSERT или UPDATE, так как при этом автоматически вносятся значения даты и времени самой последней операции, если эти величины не введены программой. Можно также устанавливать текущее значение даты и времени, задавая значение NULL. Параметр M влияет только на способ вывода столбца TIMESTAMP; для хранения его значений всегда используется 4 байта. Следует учитывать, что столбцы TIMESTAMP(M), где M равно 8 или 14, представляют собой числа, в то время, как столбцы TIMESTAMP(M) с иным значением параметра M являются строками. Это убеждает, что можно надежно сделать дамп и восстановить таблицу с этими типами столбцов!
TIMESTAMP эквивалентно TIMESTAMP(14).
TIME
Время. Интервал от '-838:59:59' до '838:59:59'. MySQL выводит значения TIME в формате 'HH:MM:SS', но можно устанавливать значения в столбце TIME, используя как строки, так и числа.
YEAR[(2|4)]
Год в двухзначном или четырехзначном форматах (по умолчанию формат четырехзначный). Допустимы следующие значения: с 1901 по 2155, 0000 для четырехзначного формата года и 1970-2069 при использовании двухзначного формата (70-69). MySQL выводит значения YEAR в формате YYYY, но можно задавать значения в столбце YEAR, используя как строки, так и числа (тип данных YEAR недоступен в версиях, предшествующих MySQL 3.22).
YEAR эквивалентно YEAR(4).
CHAR(M) [BINARY]
Строка фиксированной длины, при хранении всегда дополняется пробелами в конце строки до заданного размера. Диапазон параметра M составляет от 0 до 255 символов (от 1 до 255 в версиях, предшествующих MySQL 3.23). Концевые пробелы удаляются при выводе значения. Если не задан атрибут чувствительности к регистру BINARY, то величины CHAR сортируются и сравниваются как независимые от регистра в соответствии с установленным по умолчанию алфавитом. Атрибут NATIONAL CHAR (или его эквивалентная краткая форма NCHAR) представляет собой принятый в ANSI SQL способ указания, что в столбце CHAR должен использоваться установленный по умолчанию набор символов (CHARACTER). В MySQL это принято по умолчанию. CHAR является сокращением от CHARACTER. MySQL позволяет создавать столбец типа CHAR(0). В основном это полезно, если необходимо обеспечить совместимость с некоторыми старыми приложениями, которые зависят от наличия столбца, но реально эту величину не используют. Кроме того, такая возможность может очень пригодиться в случае, если необходим столбец, который может содержать только 2 значения, а именно CHAR(0) (т.е. столбец, который не определен как NOT NULL, занимает только один бит и принимает только 2 значения: NULL или "").
CHAR эквивалентно CHAR(1).
VARCHAR(M)
Строка переменной длины. С версии 5.0.3 диапазон параметра M составляет от 0 до 65535 символов. Однако, нужно учесть, что это значение распределяется среди всех данных ряда, не считая BLOB и TEXT, которые идут отдельно. Для UTF-8 максимальная длина данных ряда будет приблизительно в три раза меньше, а именно: 21844.
TINYBLOB и TINYTEXT
Столбец типа BLOB или TEXT с максимальной длиной 255 (2^8 - 1) символов.
BLOB и TEXT
Столбец типа BLOB или TEXT с максимальной длиной 65535 (2^16 - 1) символов.
MEDIUMBLOB и MEDIUMTEXT
Столбец типа BLOB или TEXT с максимальной длиной 16777215 (2^24 - 1) символов.
LONGBLOB и LONGTEXT
Столбец типа BLOB или TEXT с максимальной длиной 4294967295 (2^32 - 1) символов. Следует учитывать, что в настоящее время протокол передачи данных сервер/клиент и таблицы MyISAM имеют ограничение 16 Мб на передаваемый пакет/строку таблицы, поэтому пока нельзя использовать этот тип данных в его полном диапазоне.
ENUM('значение1','значение2',...)
Перечисление. Перечисляемый тип данных. Объект строки может иметь только одно значение, выбранное из заданного списка величин 'значение1', 'значение2', ..., NULL или специальная величина ошибки "". Список ENUM может содержать максимум 65535 различных величин.
SET('значение1','значение2',...)
Набор. Объект строки может иметь ноль или более значений, каждое из которых должно быть выбрано из заданного списка величин 'значение1', 'значение2', ... Список SET может содержать максимум 64 элемента.
См. также "Особенности применения типов ENUM и SET".