Удалить против усечения
Обе команды SQL (язык запросов структуры), Delete и Truncate используются для удаления данных, хранящихся в таблицах базы данных. Delete - это оператор DML (язык манипулирования данными), который удаляет некоторые или все строки таблицы. Предложение Where используется для указания строк, которые необходимо удалить, и если предложение Where не используется с оператором Delete, оно удаляет все данные в таблице. Truncate - это оператор DDL (языка определения данных), который удаляет все данные из таблицы. Обе эти команды не разрушают структуру таблицы и ссылки на таблицу, и при необходимости удаляются только данные.
Удалить заявление
Оператор Delete позволяет пользователю удалять данные из существующей таблицы в базе данных на основе указанного условия, и для определения этого условия используется предложение Where. Команда удаления называется выполнением в журнале, поскольку она удаляет только одну строку за раз и сохраняет запись для каждого удаления строки в журнале транзакций. Таким образом, это приводит к замедлению работы. Delete - это оператор DML, поэтому он не фиксируется автоматически при выполнении команды. Таким образом, при необходимости операцию удаления можно откатить для повторного доступа к данным. После выполнения команды «Удалить» ее следует зафиксировать или откатить, чтобы изменения были сохранены навсегда. Оператор Delete не удаляет структуру таблицы из базы данных. Кроме того, он не освобождает пространство памяти, используемое таблицей.
Типичный синтаксис команды Удалить приведен ниже.
УДАЛИТЬ ИЗ
или
УДАЛИТЬ ОТ ГДЕ
Усечь заявление
Оператор Truncate удаляет все данные из существующей таблицы в базе данных, но сохраняет ту же структуру таблицы, а также ограничения целостности, права доступа и связи с другими таблицами. Таким образом, нет необходимости снова определять таблицу, и можно использовать старую структуру таблицы, если пользователь хочет повторно использовать таблицу снова. Truncate удаляет все данные, освобождая страницы данных, используемые для хранения данных, и только эти освобождения страниц сохраняются в журнале транзакций. Следовательно, команда truncate использует для работы только меньше ресурсов системы и журнала транзакций, поэтому работает быстрее, чем другие связанные команды. Truncate - это команда DDL, поэтому она использует автоматические фиксации до и после выполнения оператора. Следовательно, truncate никак не может откатить данные снова. Он освобождает пространство памяти, используемое таблицей после выполнения. Но оператор Truncate не может применяться к таблицам, на которые ссылаются ограничения внешнего ключа.
Ниже приведен общий синтаксис оператора Truncate.
ОБРЕЗАТЬ ТАБЛИЦУ
В чем разница между Delete и Truncate? 1. Команды Delete и Truncate удаляют данные из существующих таблиц в базе данных без ущерба для структуры таблицы или других ссылок на таблицу. 2. Однако команду «Удалить» можно использовать для удаления определенных строк только в таблице с использованием соответствующего условия или для удаления всех строк без каких-либо условий, в то время как команду «Усечь» можно использовать только для удаления всех данных в таблице. 3. Delete - это команда DML, и при необходимости она может откатить операцию, но Truncate - это команда DDL, поэтому это оператор автоматической фиксации, и его нельзя откатить никаким способом. Поэтому важно осторожно использовать эту команду при управлении базой данных. 4. Операция усечения потребляет меньше системных ресурсов и ресурсов журнала транзакций, чем операция удаления, поэтому усечение считается более быстрым, чем удаление. 5. Кроме того, Delete не освобождает пространство, используемое таблицей, тогда как Truncate освобождает пространство, используемое после выполнения, поэтому Delete неэффективно в случае удаления всех данных из таблицы базы данных. 6. Однако Truncate нельзя использовать, когда на таблицу ссылается ограничение внешнего ключа, и в этом случае вместо Truncate можно использовать команду Delete. 7. Наконец, обе эти команды имеют как преимущества, так и недостатки при их применении в системах управления базами данных, и пользователь должен знать, как правильно использовать эти команды для достижения хороших результатов. |