Sobes.tech
Назад к вопросам
Junior — Middle
66

Какие отличия существуют между командами DELETE, TRUNCATE и DROP при работе с базой данных?

Ответ от нейросети

sobes.tech AI

Основные отличия между командами DELETE, TRUNCATE и DROP:

  • DELETE

    • Удаляет строки из таблицы по условию (если условие не указано, удаляет все строки).
    • Операция логируется и может быть откатана (транзакционная).
    • Не освобождает место, структура таблицы сохраняется.
  • TRUNCATE

    • Быстро удаляет все строки из таблицы.
    • Обычно не логирует удаление каждой строки, операция не может быть откатана в некоторых СУБД.
    • Сбрасывает счетчики (например, автоинкремент).
    • Структура таблицы сохраняется.
  • DROP

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

Пример:

DELETE FROM employees WHERE id = 10; -- удаляет конкретную строку
TRUNCATE TABLE employees; -- удаляет все строки быстро
DROP TABLE employees; -- удаляет таблицу полностью