Вопрос34
Осталось:

Объясните разницу между DELETE, TRUNCATE и DROP

Образцовый ответ

Показывать ответ по умолчанию

DELETE

  • Удаляет выбранные записи из таблицы.
  • Можно использовать условие WHERE для удаления конкретных записей.
  • Операция записывается в журнал транзакций построчно.
  • Триггеры ON DELETE срабатывают.

Синтаксис

MySQL
DELETE FROM table_name [WHERE condition];

TRUNCATE

  • Удаляет все данные из таблицы без возможности восстановления.
  • Нельзя использовать WHERE.
  • Быстрее, так как не логирует удаление каждой строки.
  • Сбрасывает идентификаторы автоинкремента.
  • Триггеры не срабатывают.

Синтаксис

MySQL
TRUNCATE TABLE table_name;

DROP

  • Удаляет всю таблицу вместе с данными, структурой, индексами, ограничениями.
  • Действие необратимо.

Синтаксис

MySQL
DROP TABLE table_name;

Выбор между командами

  • DELETE используется, когда нужно удалить определенные записи.
  • TRUNCATE используется для быстрого удаления всех данных из таблицы, сохраняя ее структуру.
  • DROP используется для полного удаления таблицы из базы данных.