Что такое DDL в SQL?

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

Ответ

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

Основные DDL-команды: Команда Назначение Пример
CREATE Создание нового объекта (таблицы, индекса, схемы). CREATE TABLE users (id SERIAL PRIMARY KEY, name TEXT);
ALTER Изменение структуры существующего объекта. ALTER TABLE users ADD COLUMN email VARCHAR(255);
DROP Полное удаление объекта из базы данных. DROP TABLE users;
TRUNCATE Быстрое удаление всех строк из таблицы (сбрасывает счетчики автоинкремента). TRUNCATE TABLE log_entries;
RENAME Переименование объекта. ALTER TABLE users RENAME TO customers;

Ключевые особенности для понимания:

  1. Работа с метаданными: DDL изменяет схему БД (какие таблицы есть, их столбцы, типы), в отличие от DML (Data Manipulation Language: INSERT, UPDATE, DELETE, SELECT), который работает с данными внутри этих структур.
  2. Неявный коммит: В большинстве СУБД выполнение DDL-операции автоматически завершает текущую транзакцию (происходит коммит). Ее нельзя откатить командой ROLLBACK (зависит от СУБД).
  3. Привилегии: Обычно выполнение DDL требует высоких прав доступа (например, роли DBA).

Практическое значение для тестировщика: Понимание DDL необходимо для чтения скриптов миграции базы данных, проверки корректности развертывания новых версий приложения и анализа структуры БД при составлении сложных запросов.