Вопрос №26
Осталось:
Объясните различия между CHAR и VARCHAR
Образцовый ответ
Показывать ответ по умолчанию
CHAR(n):
- Хранит строки фиксированной длины n.
- Если введенная строка короче n, она дополняется пробелами до длины n.
- Используется для хранения данных одинаковой длины (например, коды стран, почтовые индексы).
VARCHAR(n):
- Хранит строки переменной длины до n символов.
- Фактически занимает столько места, сколько символов в строке плюс небольшой служебный объем для хранения длины.
- Используется для хранения строковых данных переменной длины.
Основные различия:
Память и производительность:
- CHAR всегда занимает фиксированное количество памяти.
- VARCHAR более эффективен с точки зрения использования памяти, но может быть немного медленнее при доступе.
Применение:
- CHAR подходит для данных с предсказуемой длиной.
- VARCHAR подходит для данных переменной длины.
Пример:
CREATE TABLE products ( code CHAR(10), -- Код товара фиксированной длины name VARCHAR(100) -- Название товара переменной длины );
Вставка данных:
INSERT INTO products (code, name) VALUES ('A123', 'Ноутбук Lenovo');
В столбце code значение будет дополненно пробелами до 10 символов.