Назад к вопросам
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; -- удаляет таблицу полностью