Чем отличаются DML и DDL в SQL?

В SQL термины DML (Data Manipulation Language) и DDL (Data Definition Language) обозначают два разных подмножества команд, каждое из которых служит своей цели:

  • DML — это команды для работы с данными внутри таблиц: добавление, изменение, удаление и выборка.

  • DDL — это команды для работы со структурой базы данных: создание и изменение таблиц, индексов, схем.

🔷 DML (Data Manipulation Language) — "Манипулирование данными"

Используется для чтения и изменения содержимого таблиц в базе данных. Эти команды не меняют структуру таблицы, только сами данные.

Основные команды:

Команда Назначение
SELECT Чтение данных из таблицы
--- ---
INSERT Добавление новых строк
--- ---
UPDATE Изменение существующих строк
--- ---
DELETE Удаление строк
--- ---

🔹 Примеры:

SELECT \* FROM users;
INSERT INTO users (name, age) VALUES ('Alice', 30);
UPDATE users SET age = 31 WHERE name = 'Alice';
DELETE FROM users WHERE name = 'Alice';

Особенности:

  • Команды DML поддерживают транзакции.

  • Изменения могут быть отменены (ROLLBACK) или подтверждены (COMMIT).

  • Выполняются над данными в существующих таблицах.

🔶 DDL (Data Definition Language) — "Определение структуры"

Используется для создания, изменения и удаления объектов базы данных: таблиц, схем, индексов, представлений и т. д.

Основные команды:

Команда Назначение
CREATE Создание новой таблицы, базы, индекса и т.д.
--- ---
ALTER Изменение существующей структуры (добавление/удаление столбцов и т.п.)
--- ---
DROP Удаление таблицы или другого объекта
--- ---
TRUNCATE Полное удаление всех данных из таблицы без возможности отката
--- ---

🔹 Примеры:

CREATE TABLE users (id INT PRIMARY KEY, name TEXT, age INT);
ALTER TABLE users ADD COLUMN email TEXT;
DROP TABLE users;
TRUNCATE TABLE logs;

Особенности:

  • Команды DDL автоматически фиксируются (auto-commit): они не входят в обычную транзакцию.

  • Изменения нельзя откатить с помощью ROLLBACK.

  • Используются на этапе проектирования или миграций.

🔁 Краткое сравнение

Критерий DML DDL
Назначение Работа с данными Работа со структурой
--- --- ---
Примеры команд SELECT, INSERT, UPDATE, DELETE CREATE, ALTER, DROP, TRUNCATE
--- --- ---
Поддержка транзакций ✅ Да ❌ Нет (обычно auto-commit)
--- --- ---
Воздействие Изменяет содержимое таблиц Изменяет сами таблицы и объекты
--- --- ---
Отмена (ROLLBACK) Можно Нельзя
--- --- ---

Итого

  • DML — это действия над данными: добавление, удаление, обновление, чтение.

  • DDL — это действия над структурой БД: создание и изменение таблиц и схем.

  • Оба типа команд являются неотъемлемыми частями SQL, но применяются на разных уровнях: DML — при работе с бизнес-логикой, DDL — при проектировании базы.