Строковые данные в MySQL.

Строковые данные (String Types) в MySQL.

В MySQL существует несколько типов символических данных (строковых). Понятие “строки”, которые могут храниться в таких столбцах MySQL, является общим в том смысле, что это могут быть не только строки символов (текстовые данные), но и какие-то двоичных данные, например, изображения или аудио файлы.

Текстовые строковые данные.

 CHAR  для хранения данных фиксированной длины
 VARCHAR  для хранения данных переменной длины
 TEXT  для хранения данных переменной длины

Типы char и varchar самые распространенные. Единственное отличие между ними, что первый тип с фиксированной длиной, второй – с переменной. При сохранении в поле char более короткого значения, оно дополняется пробелами справа. Эти пробелы отсекаются при выборке. Значения типа varchar занимают столько байт, сколько нужно для их хранения плюс один байт для сохранения длины строки.

В таблице ниже приведены примеры, как сохраняется значения в столбцах типа char и varchar.

Значение CHAR(4)  Количество байт VARCHAR(4)  Количество байт
 ”  ‘    ‘   4 байта  ”  1 байт
 ‘AB’  ‘AB  ‘   4 байта  ‘AB’  3 байта
 ‘ABCD’  ‘ABCD’   4 байта  ‘ABCD’  5 байт
 ‘ABCDEF’  ‘ABCD’   4 байта  ‘ABCD’  5 байт

Если длина значений, сохраняемых в столбце меняется незначительно, предпочтительнее использовать char, т.к. таблицы со строками фиксированной длины обрабатываются эффективнее, чем с переменной.

Особо стоит выделить типы ENUM и SET. Это такие строковые типы данных, значения которых выбираются из фиксированного списка значений. Главное отличие между ними заключается в том, что при выборе значения типа ENUM можно выбрать только одно единственное значение из указанного множества, а тип SET позволяет выбрать одновременно одно или нескольких значений. Другими словами тип ENUM содержит взаимоисключающие значения

Например:

color ENUM(“крастный”,”желтый”,”зеленый”)

Выберите сигнал светофора.

 

Или другой пример. Здесь уже можно выбрать более одной позиции:

fruit SET (“яблоко”,”груша”,”апельсин”)

Выберите любимые фрукты.

 

Типы SET и ENUM хотя и классифицируются как строковые, внутренние их элементы хранятся как числа, и их можно обрабатывать как цифровые. А раз их можно обрабатывать цифровыми методами, эти типы данных эффективнее других строковых типов.

Бинарные строковые данные.

Бинарные строковые данные используются для хранения произвольной последовательности байт (изображений, аудио, данных сжатых в архив и т.п.). Существуют 2 класса бинарных строковых данных: Binary, BLOB. Эти классы в свою очередь делятся на несколько типов, которые описаны в таблице ниже.

Класс Тип Описание
Binary BINARY  Фиксированной длины. Похожа на тип CHAR, только в отличие от него сохраняются двоичные данные.
Binary VARBINARY  Переменной длины. Похожа на тип VARCHAR, только в отличие от него сохраняются двоичные данные.
BLOB TINYBLOB  BLOB с максимальной длиной до 255 байт.
BLOB BLOB  BLOB с максимальной длиной до 65 535 байт.
BLOB MEDIUMBLOB  BLOB с максимальной длиной до 16 777 215 байт.
BLOB LONGBLOB  BLOB с максимальной длиной до 4 294 967 295 байт.

Leave a Reply

Your email address will not be published. Required fields are marked *