Чем отличаются 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 — при проектировании базы.