ВСКРЫТИЕ ПОКАЗАЛО, ЧТО ПРИЧИНОЙ СМЕРТИ СТАЛО ВСКРЫТИЕ

Типы полей MySQL

2021.04.25 10:11

MySQL поддерживает 3 группы типов полей: числовые, дата и время, строковые (символьные).

Тип Применение Размер
TINYINTцелые числа самой маленькой разрядностиДиапазон чисел со знаком: –128 … 127, без знака(unsigned) – 0 … 255
SMALLINTцелые числа маленькой разрядностиДиапазон чисел со знаком: –32768 … 32767, без знака(unsigned) – 0 … 65535
MEDIUMINTцелые числа средней разрядностиДиапазон чисел со знаком: –8388608 … 8388607, без знака(unsigned) – 0 … 16777215
INT или INTEGERцелые числа обыкновенной разрядностиДиапазон чисел со знаком: -2147483648 … 2147483647, без знака(unsigned) – 0 … 4294967295
BIGINTцелые числа большой разрядностиДиапазон чисел со знаком: -9223372036854775808 … 9223372036854775807, без знака(unsigned) – 0 … 18446744073709551615
FLOATчисла с плавающей запятой (одинарной точности)Диапазон от –3.402823466E+38 до –1.175494351E-38 и от 1.175494351E-38 до 3.402823466E+38
DOUBLE, REALчисла с плавающей запятой (двойной точности)Диапазон от -1.7976931348623157E+308 до -2.2250738585072014E-308 и от 2.2250738585072014E-308 до 1.7976931348623157E+308
DATEдатаДиапазон от ‘1000-01-01′ до ‘9999-12-31′, отображается в виде ‘YYYY-MM-DD’
DATETIMEкомбинация даты и времениДиапазон от ‘1000-01-01 00:00:00′ до ‘9999-12-31 23:59:59′, отображается в виде ‘YYYY-MM-DD HH:MM:SS’
timestampвременная отметкаДиапазон от ‘1970-01-01 00:00:00′ до 2037 года, отображается в виде YYYYMMDDHHMMSS или YYMMDDHHMMSS или YYYYMMDD или YYMMDD
TIMEвремяДиапазон от ‘-838:59:59 до ‘838:59:59′, отображается в виде ‘HH:MM:SS’
YEARгод (2-х или 4-х циферное представление)Диапазон от 1901 до 2155 (для 4-х циферного представления) и 1970-2069 (70-69, для 2-х циферного представление), отображается в виде ‘YYYY’
CHARстрока фиксированной длиныДиапазон от 1 до 255 символов, пробелы по краям обрезаются при получении значения, заполняется пробелом до заданной длины (если символов меньше, чем заданная длина), сортировка и сравнение значений регистро-независимое
VARCHARстрока изменяющийся длиныДо MySQL 5.0.3: Диапазон от 0 до 255 символов.
Начиная с MySQL 5.0.3 и далее: Диапазон от 0 до 65535 символов.
Пробелы по краям обрезаются при сохранении, сортировка и сравнение значений регистро-независимое.
TINYBLOB, TINYTEXT
столбец типа BLOB или TEXT, максимальная длина 255 символов
BLOB, TEXT
столбец типа BLOB или TEXT, максимальная длина 65535 символов
MEDIUMBLOB, MEDIUMTEXT
столбец типа BLOB или TEXT, максимальная длина 16777215 символов
LONGBLOB, LONGTEXT
столбец типа BLOB или TEXT, максимальная длина 4294967295 символов
ENUMперечислениестроковый объект, может иметь только одно значение из списка, максимальное количество уникальных элементов – 65535
SETмножествостроковый объект, может иметь 0 или больше значений из списка, максимальное количество элементов – 64

Требования к памяти для числовых типов

Тип столбцаТребуемая память
TINYINT1 byte
SMALLINT2 байта
MEDIUMINT3 байта
INT4 байта
INTEGER4 байта
BIGINT8 байтов
FLOAT(X)4, если X <= 24 или 8, если 25 <= X <= 53
FLOAT4 байта
DOUBLE8 байтов
DOUBLE PRECISION8 байтов
REAL8 байтов
DECIMAL(M,D)M+2 байт, если D > 0, M+1 байт, если D = 0 (D+2, если M < D)
NUMERIC(M,D)M+2 байт, если D > 0, M+1 байт, если D = 0 (D+2, если M < D)

Требования к памяти для типов даты и времени

Тип столбцаТребуемая память
DATE3 байта
DATETIME8 байтов
TIMESTAMP4 байта
TIME3 байта
YEAR1 байт

Требования к памяти для символьных типов

Тип столбцаТребуемая память
CHAR(M)M байт, 1 <= M <= 255
VARCHAR(M)

До MySQL 5.0.3: L + 1 байт, где L <= M и 0 <= M <= 255.

Начиная с MySQL 5.0.3: L + 1 байт, где L <= M и 0 <= M <= 256 или L + 2 байт, где L <= M и 256 < M <= 65535

TINYBLOB, TINYTEXTL+1 байт, где L < 2^8
BLOB, TEXTL+2 байт, где L < 2^16
MEDIUMBLOB, MEDIUMTEXTL+3 байт, где L < 2^24
LONGBLOB, LONGTEXTL+4 байт, где L < 2^32
ENUM('value1','value2',...)1 или 2 байт, в зависимости от количества перечисляемых величин (максимум 65535)
SET('value1','value2',...)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 элемента.

КОММЕНТАРИИ

Введите код с картинки:
Гость
09.07.2021 11:12
То что надо, спасибо тебе, добрый человек