Чем отличаются DELETE, TRUNCATE и DROP?

DELETE удаляет выбранные строки, TRUNCATE обычно очищает таблицу целиком специальной операцией, DROP удаляет сам объект таблицы. Транзакции, триггеры и сброс счётчиков зависят от СУБД.

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

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

DELETE удаляет выбранные строки, TRUNCATE обычно очищает таблицу целиком специальной операцией, DROP удаляет сам объект таблицы. Транзакции, триггеры и сброс счётчиков зависят от СУБД.

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

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

DELETE удаляет выбранные строки, TRUNCATE обычно очищает таблицу целиком специальной операцией, DROP удаляет сам объект таблицы. Транзакции, триггеры и сброс счётчиков зависят от СУБД.

У DELETE можно указать WHERE; без него затрагиваются все строки. TRUNCATE не предназначен для произвольной фильтрации и может иметь ограничения по внешним ключам. После DROP теряются и определение таблицы, и её данные в рамках семантики СУБД. Неверно универсально утверждать, что TRUNCATE никогда нельзя откатить: например, PostgreSQL поддерживает его транзакционность. Перед любой операцией проверяют точную область, зависимости и возможность восстановления.

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

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

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

Подробнее