Назад к вопросам
Лига Цифровой Экономики
Senior
4
Чем отличается тип данных TEXT от VARCHAR в PostgreSQL, а также чем отличается VARCHAR от CHAR?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В PostgreSQL типы TEXT и VARCHAR очень похожи и часто взаимозаменяемы, но есть некоторые отличия:
- TEXT — это неограниченная по длине строка.
- VARCHAR(n) — строка с ограничением длины до n символов.
Если длина строки превышает n, при использовании VARCHAR(n) будет ошибка, а TEXT не ограничен.
Отличия между VARCHAR и CHAR:
- CHAR(n) — строка фиксированной длины n. Если строка короче, она дополняется пробелами справа.
- VARCHAR(n) — строка переменной длины с максимальной длиной n.
Пример:
CREATE TABLE example (
col_text TEXT,
col_varchar VARCHAR(50),
col_char CHAR(10)
);
INSERT INTO example VALUES ('hello', 'hello', 'hello');
-- col_char будет хранить 'hello ' с пробелами до длины 10
В целом, TEXT и VARCHAR(n) по производительности почти не отличаются, а CHAR используется редко, когда нужна фиксированная длина.