Типи даних
TINYINT
целые числа самой маленькой разрядности
Диапазон чисел со знаком: –128
... 127
, без знака unsigned – 0
... 255
SMALLINT
целые числа маленькой разрядности
Диапазон чисел со знаком: –32768
... 32767
, без знака – 0
... 65535
MEDIUMINT
целые числа средней разрядности
Диапазон чисел со знаком: –8388608
... 8388607
, без знака – 0
... 16777215
INT или INTEGER
целые числа обыкновенной разрядности
Диапазон чисел со знаком: ''–2147483648'' ... 2147483647
, без знака – 0
... 4294967295
BIGINT
целые числа большой разрядности
Диапазон чисел со знаком: –9223372036854775808
... 9223372036854775807
, без знака – 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
строка фиксированной длины
link Диапазон от 1
до 255
символов, пробелы по краям обрезаются при получении значения, заполняется пробелом до заданной длины (если символов меньше, чем заданная длина), сортировка и сравнение значений регистро-независимое
VARCHAR
строка изменяющийся длины
link Диапазон от 1
до 255
символов, пробелы по краям обрезаются при сохранении, сортировка и сравнение значений регистро-независимое
TINYBLOB, TINYTEXT
столбец типа BLOB
(с учетом регистра) или TEXT
(регистронезависимый), максимальная длина 255
символов
BLOB, TEXT
подробнее
столбец типа BLOB
или TEXT
, максимальная длина 65535
символов
MEDIUMBLOB, MEDIUMTEXT
столбец типа BLOB
или TEXT
, максимальная длина 16777215
символов
LONGBLOB, LONGTEXT
столбец типа BLOB
или TEXT
, максимальная длина 4294967295
символов
ENUM
перечисление
link строковый объект, может иметь только одно значение из списка, максимальное количество уникальных элементов – 65535
Если объявлено, что столбец ENUM разрешает NULL, значение NULL является допустимым значением для столбца и значение по умолчанию — NULL. Если столбец ENUM объявлен NOT NULL, его значением по умолчанию является первый элемент списка разрешенных значений.
SET
множество
строковый объект, может иметь 0 или больше значений из списка, максимальное количество элементов – 64
Нульовий формат значення для часових типів MySQL
MySQL дозволяє зберігати «нульове» значення «0000-00-00» як «фіктивну дату». У деяких випадках це зручніше, ніж використання значень NULL, і використовує менше даних та простору індексу. Ви можете зберігати або посилатися на них явно, використовуючи значення, наведені в таблиці. Ви можете також скористатися параметрами '0' або 0, які легше писати. Для тимчасових типів, що включають частину дати (DATE, DATETIME, and TIMESTAMP), використання цих значень може призвести до warning or errors. Точна поведінка залежить від того, який із суворих режимів і режимів SQL NO_ZERO_DATE увімкнено; see Section 7.1.11, “Server SQL Modes”.
«Нульові» значення дати або часу, які використовуються через Connector/ODBC, автоматично перетворюються на NULL, оскільки ODBC не може обробляти такі значення.
Часові типи MariaDB
MariaDB зберігає значення, які використовують DATETIME
у форматі, який підтримує значення між 1000-01-01 00:00:00.000000
і 9999-12-31 23:59:59.999999
.
MariaDB також може зберігати мікросекунди з точністю від 0 до 6. Якщо точність мікросекунд не вказана, за замовчуванням використовується 0.
MariaDB також підтримує «0000-00-00» як спеціальне значення нульової дати, якщо NO_ZERO_DATE не вказано в SQL_MODE. Подібним чином окремі компоненти дати можуть мати значення 0 (наприклад: '2015-00-12'), якщо в SQL_MODE не вказано NO_ZERO_IN_DATE. У багатьох випадках результатом виразу en, що містить нульову дату або дату з нульовими частинами, є NULL. Якщо ALLOW_INVALID_DATES SQL_MODE увімкнуто, якщо частина дня знаходиться в діапазоні від 1 до 31, дата не створює жодної помилки, навіть для місяців, які мають менше 31 дня.
Для наочності
Вимоги до пам’яті числових типів
Тип
Необхідна пам’ять
TINYINT
1 byte
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+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)
Требования к памяти для типов даты и времени
Тип столбца
Требуемая память
DATE
3 байта
DATETIME
8 байтов
TIMESTAMP
4 байта
TIME
3 байта
YEAR
1 байт
MariaDB Data Type Storage Requirements
Last updated