Когда вы создаёте таблицы в 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 и оптимальный формат хранения.
Теперь вы знаете, какой тип данных выбирать для своих таблиц.