Встречается на собеседованиях • сегодня
В разница между командами делит и транткейп
Команды `DELETE` и `TRUNCATE` обе используются для удаления данных из таблиц, но они работают разными способами и имеют различные характеристики, которые делают их подходящими для разных сценариев использования.
DELETE
Удаляет одну или несколько строк из таблицы, которые соответствуют критериям, указанным в предложении `WHERE`.
Особенности:
- Условное удаление: Может использовать условие `WHERE` для определения, какие строки должны быть удалены. Если `WHERE` не указано, будут удалены все строки, но процесс будет медленнее по сравнению с `TRUNCATE`.
- Транзакционность: Операции могут быть отменены, они поддерживают транзакции. Если вы удаляете данные и затем выполняете `ROLLBACK`, изменения будут отменены.
- Логирование: Логирует удаление каждой строки, что занимает время и ресурсы сервера.
text
```sql
DELETE FROM customers WHERE last_name = 'Smith';
```TRUNCATE
Используется для быстрого удаления всех строк из таблицы, сбрасывая таблицу в исходное состояние без строк.
Особенности:
- Быстрое удаление: Обычно работает быстрее `DELETE`, так как не логирует удаление каждой строки. Вместо этого она удаляет данные путем деаллокации страниц, на которых эти данные хранятся.
- Не поддерживает `WHERE`: Нельзя использовать `TRUNCATE` для условного удаления. Она всегда удаляет все строки.
- Сброс счётчиков: В некоторых СУБД, например в PostgreSQL, `TRUNCATE` также сбрасывает любые счетчики идентификации (серийные номера).
text
```sql
TRUNCATE TABLE customers;
```Различия:
- DELETE лучше использовать, когда нужно удалить определенные строки или когда требуется поддержка транзакций для возможности отмены изменений.
- TRUNCATE идеально подходит для ситуаций, когда нужно быстро удалить все данные из таблицы, особенно в тестовых или разработческих средах, где транзакционность и восстановление данных не требуется.
Используйте `DELETE`, когда вам нужно точечно удалить определенные строки с возможностью отмены. Используйте `TRUNCATE`, когда вам нужно быстро и полностью очистить таблицу без возможности отмены.
May 22, 2024, easyoffer
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы
