Лого

Символьные и бинарные типы данных

13.09.2024

Перечисленные типы играют весомую роль в хранении строк и бинарных данных. Посмотрим на основные, затронем их характеристики и случаи использования.

CHAR(<количество символов>)

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

  • Диапазон значений - от 0 до 255 символов.
  • Хранение - занимает точное количество памяти. CHAR(10) всегда займет 10 байт, даже если строка короче.
  • Когда использовать - для каких-нибудь кодов стран, статусов (Y/N), пол человека (м/ж) и тд.

VARCHAR(<количество символов>)

Здесь предназначение в другом. Строки могут быть переменной длины и они не дополняются пробелами до конца.

  • Диапазон значений - от 0 до 65 535 символов.
  • Хранение - занимает только необходимое количество байт + несколько дополнительных для информации о длине.
  • Когда использовать - все остальное, где длина строк варьируется.

BINARY(<количество байт>)

Фиксированный тип данных для бинарных строк. Если длина меньше установленной, то дополняется нулевыми байтами до конца, как и CHAR.

  • Когда использовать - данные фиксированной длины, например, хеши.

VARBINARY(<количество байт>)

Для бинарных строк переменчивой длины. Также не добавляет нулевые байты в конец.

  • Когда использовать - изображения можно хранить, потому что у них размеры могут меняться.

BLOB

Используется для хранения больших бинарных данных, читай изображения или видео.

TEXT

Предназначен для больших текстовых данных. Длинные тексты, статьи, описания и прочая лабуда.

Подведем черту

Выбор зависит от специфики данных в вашей БД. Скорее всего я что-то упустил и не увидел, но в целом, этой информации для общего представления уже хватит, чтобы собрать первые таблицы.