Что делает оператор DELETE в SQL?

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

Ответ

Оператор DELETE в SQL используется для удаления одной или нескольких записей (строк) из таблицы базы данных.

Ключевые особенности:

  • Удаляет целые строки, а не отдельные значения в столбцах.
  • Работает на основе условия WHERE. Без условия WHERE удалятся ВСЕ строки в таблице.
  • Это операция DML (Data Manipulation Language), поэтому её можно откатить командой ROLLBACK (если транзакция не зафиксирована).

Базовый синтаксис:

DELETE FROM table_name
WHERE condition;

Примеры:

  1. Удаление конкретной записи:
    DELETE FROM users
    WHERE id = 123;
  2. Удаление по условию:
    DELETE FROM orders
    WHERE status = 'cancelled' AND created_at < '2023-01-01';
Важные отличия от TRUNCATE TABLE: DELETE TRUNCATE
Удаляет строки по условию WHERE. Удаляет ВСЕ строки сразу.
Медленнее, так как каждая операция удаления логируется. Быстрее, минимально логируется.
Можно откатить (ROLLBACK). В большинстве СУБД нельзя откатить.
Срабатывают триггеры ON DELETE. Триггеры не срабатывают.

Всегда используйте WHERE с DELETE, если не планируете очищать всю таблицу.