Вопрос26
Осталось:

Объясните различия между CHAR и VARCHAR

Образцовый ответ

Показывать ответ по умолчанию

CHAR(n):

  • Хранит строки фиксированной длины n.
  • Если введенная строка короче n, она дополняется пробелами до длины n.
  • Используется для хранения данных одинаковой длины (например, коды стран, почтовые индексы).

VARCHAR(n):

  • Хранит строки переменной длины до n символов.
  • Фактически занимает столько места, сколько символов в строке плюс небольшой служебный объем для хранения длины.
  • Используется для хранения строковых данных переменной длины.

Основные различия:

Память и производительность:

  • CHAR всегда занимает фиксированное количество памяти.
  • VARCHAR более эффективен с точки зрения использования памяти, но может быть немного медленнее при доступе.

Применение:

  • CHAR подходит для данных с предсказуемой длиной.
  • VARCHAR подходит для данных переменной длины.

Пример:

MySQL
CREATE TABLE products (
    code CHAR(10),     -- Код товара фиксированной длины
    name VARCHAR(100)  -- Название товара переменной длины
);

Вставка данных:

MySQL
INSERT INTO products (code, name)
VALUES ('A123', 'Ноутбук Lenovo');

В столбце code значение будет дополненно пробелами до 10 символов.