Разница между удалением и усечением

Разница между удалением и усечением
Разница между удалением и усечением

Видео: Разница между удалением и усечением

Видео: Разница между удалением и усечением
Видео: Команды для удаления данных в SQL (delete, truncate table, drop table, drop database) 2024, Ноябрь
Anonim

Удалить или обрезать

Обе команды SQL (язык структурных запросов), Удалить и Усечение, используются для избавления от данных, хранящихся в таблицах базы данных. Удалить - это оператор DML (язык манипулирования данными), который удаляет некоторые или все строки таблицы. Предложение «Where» используется для указания строк, которые необходимо удалить, и, если предложение «Where» не используется с оператором Delete, оно удаляет все данные в таблице. Truncate - это оператор DDL (язык определения данных), который удаляет все данные из таблицы. Обе эти команды не разрушают структуру таблицы и ссылки на таблицу, а только данные удаляются по мере необходимости.

Удалить Заявление

Оператор Delete позволяет пользователю удалить данные из существующей таблицы в базе данных на основе указанного условия, и для определения этого условия используется предложение «Where». Команда удаления называется выполнением в журнале, поскольку она удаляет только одну строку за раз и сохраняет запись для каждого удаления строки в журнале транзакций. Таким образом, это приводит к замедлению работы. Удалить - это оператор DML, поэтому он не фиксируется автоматически при выполнении команды. Таким образом, операцию удаления можно отменить, чтобы снова получить доступ к данным, если это необходимо. После выполнения команды Удалить ее следует зафиксировать или откатить, чтобы сохранить изменения навсегда. Оператор Delete не удаляет структуру таблицы из базы данных. Также он не освобождает пространство памяти, используемое таблицей.

Типичный синтаксис команды Удалить указан ниже.

УДАЛИТЬ ИЗ

или

УДАЛИТЬ ОТКУДА

Усеченный оператор

Оператор Truncate удаляет все данные из существующей таблицы в базе данных, но сохраняет ту же структуру таблицы, а также ограничения целостности, привилегии доступа и связи с другими таблицами. Таким образом, не требуется заново определять таблицу, и можно использовать старую структуру таблицы, если пользователь хочет снова использовать таблицу. Truncate удаляет все данные, освобождая страницы данных, используемые для хранения данных, и только эти освобожденные страницы сохраняются в журнале транзакций. Таким образом, команда truncate использует для работы меньше системных ресурсов и ресурсов журнала транзакций, поэтому она работает быстрее, чем другие родственные команды. Truncate - это команда DDL, поэтому она использует автоматические фиксации до и после выполнения оператора. Следовательно, truncate никак не может откатить данные снова. Он освобождает пространство памяти, используемое таблицей после выполнения. Но оператор Truncate нельзя применять к таблицам, на которые ссылаются ограничения внешнего ключа.

Ниже приведен общий синтаксис для оператора Truncate.

TRUNCATE TABLE

В чем разница между Удалить и Обрезать?

1. Команды Delete и Truncate удаляют данные из существующих таблиц в базе данных, не нанося вреда структуре таблицы или другим ссылкам на таблицу.

2. Однако команду «Удалить» можно использовать для удаления определенных строк только в таблице с использованием соответствующего условия или для удаления всех строк без каких-либо условий, в то время как команду «Усечение» можно использовать только для удаления всех данных в таблице.

3. Удалить - это команда DML, и при необходимости она может откатить операцию, но Truncate - это команда DDL, поэтому это оператор автоматической фиксации, и его нельзя откатить каким-либо образом. Поэтому важно осторожно использовать эту команду при управлении базой данных.

4. Операция усечения потребляет меньше системных ресурсов и ресурсов журнала транзакций, чем операция удаления, поэтому усечение считается более быстрым, чем удаление.

5. Кроме того, Delete не освобождает пространство, используемое таблицей, тогда как Truncate освобождает пространство, используемое после выполнения, поэтому Delete неэффективен в случае удаления всех данных из таблицы базы данных.

6. Однако Truncate нельзя использовать, когда на таблицу ссылается ограничение внешнего ключа, и в этом случае вместо Truncate можно использовать команду Delete.

7. Наконец, обе эти команды имеют свои преимущества и недостатки при применении в системах управления базами данных, и пользователь должен знать, как правильно использовать эти команды для достижения хороших результатов.

Рекомендуемые: