Вопрос №34
Осталось:
Объясните разницу между DELETE, TRUNCATE и DROP
Образцовый ответ
Показывать ответ по умолчанию
DELETE
- Удаляет выбранные записи из таблицы.
- Можно использовать условие WHERE для удаления конкретных записей.
- Операция записывается в журнал транзакций построчно.
- Триггеры ON DELETE срабатывают.
Синтаксис
DELETE FROM table_name [WHERE condition];
TRUNCATE
- Удаляет все данные из таблицы без возможности восстановления.
- Нельзя использовать WHERE.
- Быстрее, так как не логирует удаление каждой строки.
- Сбрасывает идентификаторы автоинкремента.
- Триггеры не срабатывают.
Синтаксис
TRUNCATE TABLE table_name;
DROP
- Удаляет всю таблицу вместе с данными, структурой, индексами, ограничениями.
- Действие необратимо.
Синтаксис
DROP TABLE table_name;
Выбор между командами
- DELETE используется, когда нужно удалить определенные записи.
- TRUNCATE используется для быстрого удаления всех данных из таблицы, сохраняя ее структуру.
- DROP используется для полного удаления таблицы из базы данных.