Что такое DDL в SQL и какие основные операции он включает?

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

Ответ

DDL (Data Definition Language) — это подмножество SQL, предназначенное для определения и изменения структуры объектов базы данных (схемы).

Основные операции DDL:

  1. CREATE — создание объектов (таблиц, индексов, представлений).

    CREATE TABLE employees (
        id INT PRIMARY KEY,
        name VARCHAR(100) NOT NULL,
        department_id INT REFERENCES departments(id)
    );
  2. ALTER — изменение существующих объектов (добавление/удаление столбцов, изменение типов данных, добавление ограничений).

    ALTER TABLE employees ADD COLUMN hire_date DATE;
    ALTER TABLE employees ALTER COLUMN name TYPE VARCHAR(200);
  3. DROP — полное удаление объектов из базы данных.

    DROP TABLE employees;
  4. TRUNCATE — быстрая очистка всех данных из таблицы с сохранением её структуры. В отличие от DELETE, операция нелогируема (не пишет в WAL подробно) и не может быть откатана в рамках транзакции в некоторых СУБД.

    TRUNCATE TABLE audit_log;

Практический опыт:

  • Использование DDL в миграциях базы данных (Liquibase, Flyway) для контроля версий схемы в CI/CD.
  • Понимание блокировок, накладываемых операциями ALTER TABLE на больших таблицах, и стратегий для минимизации простоя (например, использование ALTER TABLE ... ADD COLUMN ... DEFAULT NULL).
  • Создание и управление индексами (CREATE INDEX, DROP INDEX) для оптимизации производительности запросов.