В чем разница DELETE и TRUNCATE в SQL?

Основные различия между DELETE и TRUNCATE в SQL:

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

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

Основные различия между DELETE и TRUNCATE в SQL:

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

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

Основные различия между DELETE и TRUNCATE в SQL:

  • DELETE удаляет строки из таблицы построчно и может иметь условие WHERE. Операция логируется, что позволяет откатить изменения (ROLLBACK).
  • TRUNCATE удаляет все строки из таблицы целиком, без возможности указать условие. Это более быстрая операция, так как не логирует удаление каждой строки отдельно, а сбрасывает данные страницы.

Пример:

DELETE FROM users WHERE age < 18; -- удалит только пользователей младше 18
TRUNCATE TABLE users; -- удалит всех пользователей сразу

Также TRUNCATE обычно сбрасывает счётчики автоинкремента, а DELETE — нет.

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

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

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

Подробнее