Ответ
DDL (Data Definition Language) — это подмножество SQL, предназначенное для определения и изменения структуры объектов базы данных (схемы).
Основные операции DDL:
-
CREATE — создание объектов (таблиц, индексов, представлений).
CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(100) NOT NULL, department_id INT REFERENCES departments(id) ); -
ALTER — изменение существующих объектов (добавление/удаление столбцов, изменение типов данных, добавление ограничений).
ALTER TABLE employees ADD COLUMN hire_date DATE; ALTER TABLE employees ALTER COLUMN name TYPE VARCHAR(200); -
DROP — полное удаление объектов из базы данных.
DROP TABLE employees; -
TRUNCATE — быстрая очистка всех данных из таблицы с сохранением её структуры. В отличие от
DELETE, операция нелогируема (не пишет в WAL подробно) и не может быть откатана в рамках транзакции в некоторых СУБД.TRUNCATE TABLE audit_log;
Практический опыт:
- Использование DDL в миграциях базы данных (Liquibase, Flyway) для контроля версий схемы в CI/CD.
- Понимание блокировок, накладываемых операциями
ALTER TABLEна больших таблицах, и стратегий для минимизации простоя (например, использованиеALTER TABLE ... ADD COLUMN ... DEFAULT NULL). - Создание и управление индексами (
CREATE INDEX,DROP INDEX) для оптимизации производительности запросов.