Типы данных MySQL

Материал из Wiki семьи Белых
Перейти к: навигация, поиск

Типы данных MySQL

Целочисленные

Тип Применение Размер Требуемая память
TINYINT целые числа самой маленькой разрядности Диапазон чисел со знаком: –128 … 127, без знака(unsigned) – 0 … 255 1 байт
SMALLINT целые числа маленькой разрядности Диапазон чисел со знаком: –32768 … 32767, без знака(unsigned) – 0 … 65535 2 байта
MEDIUMINT целые числа средней разрядности Диапазон чисел со знаком: –8388608 … 8388607, без знака(unsigned) – 0 … 16777215 3 байта
INT или INTEGER целые числа обыкновенной разрядности Диапазон чисел со знаком: -2147483648 … 2147483647, без знака(unsigned) – 0 … 4294967295 4 байта
BIGINT целые числа большой разрядности Диапазон чисел со знаком: -9223372036854775808 … 9223372036854775807, без знака(unsigned) – 0 … 18446744073709551615 8 байтов

Числа с плавающей точкой

Тип Применение Размер Требуемая память
FLOAT
FLOAT(X)
числа с плавающей запятой (одинарной точности) Диапазон от –3.402823466E+38 до –1.175494351E-38 и от 1.175494351E-38 до 3.402823466E+38 4 байта
4, если X <= 24 или
8, если 25 <= X <= 53
DOUBLE, REAL числа с плавающей запятой (двойной точности) Диапазон от -1.7976931348623157E+308 до -2.2250738585072014E-308 и от 2.2250738585072014E-308 до 1.7976931348623157E+308 8 байтов

Дата и время

Тип Применение Размер Требуемая память
DATE дата Диапазон от ‘1000-01-01′ до ‘9999-12-31′, отображается в виде ‘YYYY-MM-DD’ 3 байта
DATETIME комбинация даты и времени Диапазон от ‘1000-01-01 00:00:00′ до ‘9999-12-31 23:59:59′, отображается в виде ‘YYYY-MM-DD HH:MM:SS’ 8 байтов
timestamp временная отметка Диапазон от ‘1970-01-01 00:00:00′ до 2037 года, отображается в виде YYYYMMDDHHMMSS или YYMMDDHHMMSS или YYYYMMDD или YYMMDD 4 байта
TIME время Диапазон от ‘-838:59:59 до ‘838:59:59′, отображается в виде ‘HH:MM:SS’ 3 байта
YEAR год (2-х или 4-х циферное представление) Диапазон от 1901 до 2155 (для 4-х циферного представления) и 1970-2069 (70-69, для 2-х циферного представление), отображается в виде ‘YYYY’ 1 байт

Текстовые типы

Тип Применение Размер Требуемая память
CHAR строка фиксированной длины Диапазон от 1 до 255 символов, пробелы по краям обрезаются при получении значения, заполняется пробелом до заданной длины (если символов меньше, чем заданная длина), сортировка и сравнение значений регистро-независимое M байт, 1 <= M <= 255
VARCHAR строка изменяющийся длины Диапазон от 1 до 255 символов, пробелы по краям обрезаются при сохранении, сортировка и сравнение значений регистро-независимое L+1 байт, где L <= M и
1 <= M <= 255

Бинарные данные

Тип Применение Размер Требуемая память
TINYBLOB, TINYTEXT столбец типа BLOB или TEXT, максимальная длина 255 символов L+1 байт, где L < 28
BLOB, TEXT столбец типа BLOB или TEXT, максимальная длина 65535 символов L+2 байт, где L < 216
MEDIUMBLOB, MEDIUMTEXT столбец типа BLOB или TEXT, максимальная длина 16777215 символов L+3 байт, где L < 224
LONGBLOB, LONGTEXT столбец типа BLOB или TEXT, максимальная длина 4294967295 символов L+4 байт, где L < 232

Перечисляемые типы

Тип Применение Размер Требуемая память
ENUM перечисление строковый объект, может иметь только одно значение из списка, максимальное количество уникальных элементов – 65535 1 или 2 байт, в зависимости от количества перечисляемых величин (максимум 65535)
SET множество строковый объект, может иметь 0 или больше значений из списка, максимальное количество элементов – 64 1, 2, 3, 4 или 8 байт, в зависимости от количества элементов множества (максимум 64)

Примечание

  • VARCHAR, BLOB и TEXT являются типами данных с переменной длиной строки, для таких типов требования к памяти в общем случае определяются реальным размером величин в столбце (представлен символом L в приведенной выше таблице), а не максимально возможным для данного типа размером. Например, столбец VARCHAR(10) может содержать строку с максимальной длиной 10 символов. Реально требуемый объем памяти равен длине строки (L) плюс 1 байт для записи длины строки. Для строки 'abcd' L равно 4 и требуемый объем памяти равен 5 байтов.
  • В случае типов данных BLOB и TEXT требуется 1, 2, 3 или 4 байта для записи длины значения данного столбца в зависимости от максимально возможной длины для данного типа.
  • Если таблица включает в себя столбец какого-либо типа с переменной длиной строки, то формат записи также будет переменной длины. Следует учитывать, что при создании таблицы MySQL может при определенных условиях преобразовать тип столбца с переменной длиной в тип с постоянной длиной строки или наоборот.
  • Размер объекта ENUM определяется количеством различных перечисляемых величин. Один байт используется для перечисления до 255 возможных величин. Используя два байта, можно перечислить до 65535 величин. 
  • Размер объекта SET определяется количеством различных элементов множества. Если это количество равно N, то размер объекта вычисляется по формуле (N+7)/8 и полученное число округляется до 1, 2, 3, 4 или 8 байтов. Множество SET может иметь максимум 64 элемента.

Благодарность

yapro.ru