Типы данных MySQL


TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Очень малое целое, лежит в диапазоне от -128 до +127 (со знаком) или от 0 до 255 (без знака).

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.
Примечание: Имейте В Виду, что вся арифметика сделана используя подписанные BIGINT или ДВОЙНЫЕ величины, так Вы не должны использовать неподписанные большие целые большие чем 9223372036854775807 (63 битов) кроме с битовыми функциями! Имейте В Виду, что -, + и * будет использовать BIGINT арифметику, когда оба аргумента - величины ЦЕЛОГО! Это означает, что если Вы умножаете два больших целого (или результаты из функций, которые возвращают целые), Вы можете получить неожиданные результаты если результат большой чем 9223372036854775807.

FLOAT(точное) [ZEROFILL]
С плавающей точкой. Cannot be unsigned. precision can be <=24 for a single precision floating point number and between 25 and 53 for a double precision floating point number. these types are like the FLOAT and DOUBLE types described immediately below. FLOAT(X) have the same ranges as the corresponding FLOAT and DOUBLE types, but the display size and number of decimals is undefined. In MySQL 3.23, this is a true floating point value. In earlier MySQL versions, FLOAT(precision) always has 2 decimals. This syntax is provided for ODBC compatibility.

FLOAT[(M,D)] [ZEROFILL]
Малое (одинарной точности) с плавающей точкой.
Допустимые величины от -3.402823466E+38 до -1.175494351E-38, 0 и 1.175494351E-38 to 3.402823466E+38.
M показывает отображаемую ширину и D номер дроби ???
FLOAT без аргументов или с аргументом меньше 24 представляет число одинарной точности с плавающей точкой.

DOUBLE[(M,D)] [ZEROFILL]
Среднее (двойная точность) с плавающей точкой.
Лежит в диапазоне от -1.7976931348623157E+308 до -2.2250738585072014E-308,
0 и от 2.2250738585072014E-308 до 1.7976931348623157E+308.
M показывает отображаемую ширину и D номер дроби ???
DOUBLE без аргументов или FLOAT(X) с 25 <= X <= 53 представляют (двойной точности) число с плавающей точкой.

REAL[(M,D)] [ZEROFILL]
Это синоним для DOUBLE.

DECIMAL[(M[,D])] [ZEROFILL]
Неупакованное число с плавающей точкой.

Число подобно СИМВОЛЬНОМУ столбцу: ``распакованное'' означает, что число сохранено как строка, использование одного символа для каждой цифры величины.
Знако десятичной дроби и знак не считаются для задания M. Если D равно 0, то велечина не может иметь десятиную дробь. Максимальное значение может иметь значение DOUBLE, но фактическая область цифр может ограничиваться указанием M или D. Если не указано D, то по умолчанию будет приравниваться к 0. Если не указывается M, то по умолчанию будет приравноваться к 10.Имейте В Виду, что в MySQL 3.22 аргумент M включает знак и знак десятичной дроби.

NUMERIC(M,D) [ZEROFILL]
Это синоним для DECIMAL.


DATE
Дата. Поддерживает значения от '1000-01-01' до '9999-12-31'.
MySQL отображает DATE значения в формате 'YYYY-MM-DD', но позволяет Вам назначать столбцы велечин, использующих каждые строки или числа ????!!!!

DATETIME
Комбинация даты и времени. Поддерживает значения от '1000-01-01 00:00:00' до '9999-12-31 23:59:59'.
MySQL выводит значения DATETIME в формате 'YYYY-MM-DD HH:MM:SS', но позволяет Вам назначать столбцы велечин, использующих каждые строки или числа ????!!!!

TIMESTAMP[(M)]
Отпечаток времени. Значение из диапазона от '1970-01-01 00:00:00' до 2037 года.
MySQL показывает TIMESTAMP значение в формате YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD или YYMMDD,
в зависимости от значения M = 14 (или пропущено) , 12, 8 или 6
но позволяет Вам назначать столбцы велечин, использующих каждые строки или числа ????!!!!
TIMESTAMP используется для записи даты и времени в функциях INSERT или UPDATE для того, того, что он автоматически устанавливается на дате и времени наиболее последнего функционирования если Вы не даете этому величину сами.

TIME
Время. Значения от '-838:59:59' до '838:59:59'.
MySQL отоброажает значений TIME в формате 'HH:MM:SS't,
но позволяет Вам назначать величины в столбцы ВРЕМЕНИ, использующие каждые строки или числа.

YEAR[(2|4)]
Год в представлении 2- или 4- цифровом формате (по умолчанию 4 цифры).
Значения от 1901 до 2155, и 0000 в формате 4 цифр и 1970-2069 если Вы используете 2-цифровой формат (70-69).
MySQL показывает значение YEAR в формате YYYY,
но позволяет Вам назначать величины в столбцы YEAR, использующие каждые строки или числа. ( тип YEAR новый в MySQL 3.22.)

[NATIONAL] CHAR(M) [BINARY]
Строка фиксированной длинны, которая всегда дозаполняется пробелами до окончания размера, указанноко в описании.
Значение M от 1 до 255 символов. При длинне строки больше 255 лишние символы удаляются до размеров строки.
Значение CHAR сортируются и сравниваются в регистро-независимом контексте согласно внутренней таблице, если не указано ключевое слово BINARY.
NATIONAL CHAR (короткое имя NCHAR) является ANSI SQL-значением, чтобы определить использование национального набора символов.
По умолчанию в MySQL является ссылкой на CHARACTER.??????!!!! MySQL позволяет Вам
создавать столбцы вида CHAR(0). Это сделано для совместимости со старыми приложениями, которые требуют наличие столбца. Это также требуется когда Вам нужен столбец, который может содержать только NULL или "".

[NATIONAL] VARCHAR(M) [BINARY]
Строка переменной длинны.
Примечание: Окончание удалаяется до нормальной длинны (отличается от спецификации ANSI SQL).
Значение M от 1 до 255 символов.
Значения VARCHAR сортируются и сравниваются в регистро-независимом контексте
кроме случаев с словом BINARY. См часть 7.7.1 Тихие изменения спецификации столбца. VARCHAR аналогично CHARACTER VARYING.

TINYBLOB
TINYTEXT
BLOB или TEXT столбец может иметь максимумальную длинну 255 (2^8 - 1) символов. Смотри раздел 7.7.1 Silent column specification changes.

BLOB
TEXT
BLOB или TEXT значения могут иметь максимальную длинну 65535 (2^16 - 1) символов.
См главу 7.7.1 Silent column specification changes.

MEDIUMBLOB
MEDIUMTEXT
BLOB или TEXT значения могут иметь максимальную длинну 16777215 (2^24 - 1) символов.
См главу 7.7.1 Silent column specification changes.

LONGBLOB
LONGTEXT
BLOB или TEXT значения могут иметь максимальную длинну 4294967295 (2^32 - 1) символов.
См главу 7.7.1 Silent column specification changes.

ENUM('значение1','значение2',...)
Перечисление. Строковой объект, который может иметь только одно значение которое выбирается из списка 'значение1', 'значение2', ..., или NULL. ENUM может иметь максимум 65535 значений.

SET('значение1','значение2',...)
Список. Строковой объект, который может иметь ноль или более величин, которые берутся из списка величин значение1 и т.д. Может иметь максимум 64 величины.

Размеры величин

Числовые значения

TINYINT 1 байт
SMALLINT 2 байта
MEDIUMINT 3 байта
INT 4 байта
INTEGER 4 байта
BIGINT 8 байтов
FLOAT(X) 4 если X <= 24 или 8 если 25 <= X <= 53
FLOAT 4 байта
DOUBLE 8 байтов
DOUBLE PRECISION 8 байтов
REAL 8 байтов
DECIMAL(M,D) M байтов (D+2, если M < D)
NUMERIC(M,D) M байтов (D+2, если M < D)

Типы ДАТА и ВРЕМЯ

DATE 3 байта
DATETIME 8 байт
TIMESTAMP 4 байта
TIME 3 байта
YEAR 1 байт

Строковые типы

CHAR(M) M байт, 1 <= M <= 255
VARCHAR(M) L+1 байт, когда L <= M или 1 <= M <= 255
TINYBLOB, TINYTEXT L+1 байт, когда L < 2^8
BLOB, TEXT L+2 байт, когда L < 2^16
MEDIUMBLOB, MEDIUMTEXT L+3 байт, когда L < 2^24
LONGBLOB, LONGTEXT L+4 байт, когдя L < 2^32
ENUM('зн1','зн2',...) 1 или 2 байта, зависит от количества значений (65535 значений максимум)
SET('зн1','зн2',...) 1, 2, 3, 4 или 8 байт, зависит от количества значений (64 значения максимум)