Какое отличие между командами DELETE и TRUNCATE при работе с таблицами в базе данных?

Основные отличия между командами DELETE и TRUNCATE в работе с таблицами базы данных:

Короткий ответ

Что ответить на собеседовании

Основные отличия между командами DELETE и TRUNCATE в работе с таблицами базы данных:

Подробный разбор

Ответ с пояснениями

Основные отличия между командами DELETE и TRUNCATE в работе с таблицами базы данных:

  • DELETE удаляет строки из таблицы по условию (если указано), или все строки, если условие отсутствует. Это операция DML (Data Manipulation Language).

    • Можно использовать WHERE для выборочного удаления.
    • Удаление происходит построчно, что может быть медленнее.
    • Операция логируется, можно откатить (ROLLBACK).
  • TRUNCATE удаляет все строки из таблицы целиком. Это операция DDL (Data Definition Language).

    • Не поддерживает WHERE — удаляет все данные.
    • Работает быстрее, так как не удаляет строки по одной, а сбрасывает данные.
    • Обычно не логирует удаление каждой строки, поэтому откат может быть ограничен.
    • Может сбросить счетчики автоинкремента.

Пример:

DELETE FROM users WHERE id = 10; -- удалит конкретную строку
TRUNCATE TABLE users; -- удалит все строки из таблицы

Выбор зависит от задачи: если нужно удалить все данные быстро — TRUNCATE, если выборочно — DELETE.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее