Ответ
DML (Data Manipulation Language) — это подмножество SQL, предназначенное для операций с данными внутри таблиц базы данных. В отличие от DDL (Data Definition Language), который работает со структурой БД, DML манипулирует содержимым.
Основные команды DML:
SELECT— выборка данных.INSERT— добавление новых записей.UPDATE— изменение существующих записей.DELETE— удаление записей.
Примеры использования:
-- Вставка новой строки
INSERT INTO users (name, email) VALUES ('Иван', 'ivan@example.com');
-- Обновление данных по условию
UPDATE users SET status = 'active' WHERE last_login > '2024-01-01';
-- Удаление записей
DELETE FROM logs WHERE created_at < NOW() - INTERVAL '30 days';
-- Выборка с фильтрацией и сортировкой
SELECT id, name, email FROM users WHERE country = 'RU' ORDER BY name;
Ключевой момент: DML-операции (INSERT, UPDATE, DELETE) могут быть отменены с помощью ROLLBACK в рамках транзакции, если СУБД поддерживает транзакционность.
Ответ 18+ 🔞
Давай разберём эту штуку, которая данные в базе шевелит, как будто они живые. DML, блядь, Data Manipulation Language — это типа такой набор команд в SQL, чтобы не со структурой таблиц возиться (это уже другая песня, DDL), а конкретно с содержимым, с этими самыми записями, которые там лежат, как свёрнутые ёжики.
Чем он там, этот DML, промышляет:
SELECT— это святое, выборка. Достаём данные, смотрим на них.INSERT— впихиваем новые записи. Как в переполненный автобус, только аккуратнее.UPDATE— меняем то, что уже есть. Исправляем косяки, обновляем статусы, жизнь налаживаем.DELETE— вычёркиваем нахуй ненужное. Чистим, так сказать, авгиевы конюшни.
Смотри, как это в жизни выглядит:
-- Подкидываем нового юзера в табличку
INSERT INTO users (name, email) VALUES ('Иван', 'ivan@example.com');
-- Апдейтим статусы тем, кто недавно заходил. Активность — наше всё!
UPDATE users SET status = 'active' WHERE last_login > '2024-01-01';
-- Выносим старые логи, которые уже месяц как плесенью покрылись
DELETE FROM logs WHERE created_at < NOW() - INTERVAL '30 days';
-- И, конечно, выбираем кого надо, фильтруем, сортируем
SELECT id, name, email FROM users WHERE country = 'RU' ORDER BY name;
А вот самый сок, блядь, запомни: операции INSERT, UPDATE, DELETE — они часто в транзакциях живут. Это значит, что если ты накосячил и крикнул «ой, всё!», можно отыграть назад командой ROLLBACK. Ну, если твоя СУБД, конечно, не какая-нибудь мартышлюшка и транзакции поддерживает. Спасение, ёпта!