Когда вы создаёте таблицы в MySQL, приходится указывать тип данных для каждого столбца. Это необходимо для того, чтобы определить, какие именно данные можно туда добавлять, каким образом они будут обрабатываться и сколько места займут. MySQL поддерживает типы данных SQL нескольких видов: числовые, типы даты и времени, строковые (символьные и байтовые) типы, пространственные типы и JSON типы данных. В статье подробно разберём, какие типы данных есть в MySQL.

Числовые типы
MySQL поддерживает все базовые числовые типы данных SQL. Сюда входят как точные числовые типы данных, так и приблизительные, включая целые, с фиксированной запятой и с плавающей запятой. Кроме того, MySQL также имеет тип данных BIT, используемый для хранения битовых значений. Основная масса числовых данных может быть как знаковой так и беззнаковой, но это не касается типа BIT.
|
Числовые типы |
Описание |
|
TINYINT |
Крошечное целое число |
|
SMALLINT |
Маленькое целое |
|
MEDIUMINT |
Среднее по размеру целое |
|
INT |
Стандартное целое |
|
BIGINT |
Крупное целое число |
|
DECIMAL |
Число, имеющее фиксированную точку |
|
FLOAT |
Число одинарной точности с плавающей запятой |
|
DOUBLE |
Число двойной точности с плавающей запятой |
|
BIT |
Битовый тип |
Типы данных даты и времени
MySQL позволяет использовать типы для даты и времени, а также сочетания даты и времени. Также поддерживается тип timestamp, с помощью которого можно отслеживать изменения в строке таблицы. Нужно хранить обозначения годов без дат и месяцев? Тогда подойдет YEAR-тип данных.
|
Типы даты и времени |
Описание |
|
DATE |
Дата в формате CCYY-MM-DD |
|
TIME |
Время в формате hh:mm:ss |
|
DATETIME |
Дата и время в формате CCYY-MM-DD hh:mm:ss |
|
TIMESTAMP |
Метка времени CCYY-MM-DD hh:mm:ss |
|
YEAR |
Обозначение года в формате CCYY или YY |
Строковые типы данных в MySQL
В MySQL строка может содержать любые данные, начиная с обычного текста и заканчивая двоичными значениями, например изображениями или файлами. Строки можно сравнивать и искать на основе сопоставления с образцом с помощью оператора LIKE, регулярного выражения и полнотекстового поиска.
|
Типы строк |
Описание |
|
CHAR |
Недвоичная (символьная) строка фиксированной длины. |
|
VARCHAR |
Недвоичная строка переменной длины |
|
BINARY |
Двоичная строка фиксированной длины |
|
VARBINARY |
Двоичная строка переменной длины |
|
TINYBLOB |
Очень маленький BLOB (бинарный большой объект) |
|
BLOB |
Маленький BLOB |
|
MEDIUMBLOB |
BLOB среднего размера |
|
LONGBLOB |
Большой BLOB |
|
TINYTEXT |
Очень маленькая недвоичная строка |
|
TEXT |
Небольшая недвоичная строка |
|
MEDIUMTEXT |
Недвоичная строка среднего размера |
|
LONGTEXT |
Большая недвоичная строка |
|
ENUM |
Перечисление, где каждому значению столбца может быть назначен один член перечисления |
|
SET |
Множество, где каждому значению столбца может быть назначено ноль или более членов |
Пространственные типы данных
MySQL поддерживает многочисленные типы пространственных данных, содержащих различные виды геометрических и географических значений, как показано в следующей таблице:
|
Типы пространственных данных |
Описание |
|
GEOMETRY |
Пространственное значение любого типа |
|
POINT |
Точка (пара координат XY) |
|
LINESTRING |
Кривая (одно или несколько POINT-значений) |
|
POLYGON |
Многоугольник |
|
GEOMETRYCOLLECTION |
Коллекция значений GEOMETRY |
|
MULTILINESTRING |
Коллекция значений LINESTRING |
|
MULTIPOINT |
Коллекция значений POINT |
|
MULTIPOLYGON |
Коллекция значений POLYGON |
Тип данных JSON
Начиная с версии 5.7.8, MySQL поддерживает собственный тип данных JSON, что позволяет более эффективно хранить и управлять документами JSON. Также это обеспечивает автоматическую проверку документов JSON и оптимальный формат хранения.
Теперь вы знаете, какой тип данных выбирать для своих таблиц.