Что такое тип данных VARCHAR в SQL?

«Что такое тип данных VARCHAR в SQL?» — вопрос из категории Базы данных и SQL, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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!');