Ответ
VARCHAR — это тип данных для хранения строк переменной длины в реляционных базах данных (MySQL, PostgreSQL, SQL Server и др.).
Ключевые характеристики:
- Переменная длина: Занимает только то место, которое необходимо для хранения строки, плюс небольшой оверхед (обычно 1-2 байта) для хранения информации о длине.
- Ограничение длины: При определении столбца задается максимально допустимая длина, например,
VARCHAR(255). Строки длиннее этого лимита будут обрезаны или вызовут ошибку (в зависимости от СУБД и настроек). - Эффективность: Экономит место на диске по сравнению с
CHARдля данных, длина которых сильно варьируется.
Сравнение с CHAR: |
Характеристика | VARCHAR(n) |
CHAR(n) |
|---|---|---|---|
| Длина | Переменная (до n) |
Фиксированная (n) |
|
| Хранение | Фактическая длина + оверхед | Всегда n символов |
|
| Пробелы | Не дополняются | Дополняются пробелами до длины n |
|
| Идеально для | Имена, описания, email | Коды фиксированной длины (например, CHAR(2) для кода страны) |
Пример использования:
CREATE TABLE users (
id INT PRIMARY KEY,
-- Имя пользователя, максимум 50 символов
username VARCHAR(50) NOT NULL,
-- Адрес электронной почты
email VARCHAR(255) UNIQUE NOT NULL,
-- Краткая биография, может быть длинной
bio VARCHAR(1000)
);
-- Вставка данных. Столбец 'bio' займет место только для 12 символов.
INSERT INTO users (id, username, email, bio)
VALUES (1, 'john_doe', 'john@example.com', 'Hello world!');