Изтриване срещу отрязване
И двете SQL (Structure Query Language) команди, Delete и Truncate се използват, за да се отърват от данните, съхранявани в таблици в база данни. Изтриването е DML (Data Manipulation Language) израз и премахва някои или всички редове на таблица. Клаузата „Where“се използва за определяне на редовете, които трябва да бъдат изтрити, и ако клаузата Where не се използва с оператора Delete, тя премахва всички данни в таблицата. Truncate е DDL (Data Definition Language) израз и премахва цели данни от таблицата. И двете команди не унищожават структурата на таблицата и препратките към таблицата и само данните се премахват при необходимост.
Изтриване на изявление
Изразът Delete позволява на потребителя да премахва данни от съществуваща таблица в база данни въз основа на определено условие и за определяне на това условие се използва клаузата „Where“. Командата за изтриване се нарича регистрирано изпълнение, тъй като изтрива само един ред наведнъж и запазва запис за всяко изтриване на редове в регистъра на транзакциите. Така че, това води до забавяне на работата. Изтриването е DML израз и затова не се извършва автоматично при изпълнение на командата. Следователно операцията „Изтриване“може да бъде върната, за да получите отново достъп до данните, ако е необходимо. След изпълнението на командата Delete, тя трябва да бъде фиксирана или върната назад, за да се запазят промените за постоянно. Оператор Delete не премахва структурата на таблицата на таблицата от базата данни. Освен това не освобождава пространството на паметта, използвано от таблицата.
Типичният синтаксис за командата Delete е посочен по-долу.
ИЗТРИВАНЕ ОТ
или
ИЗТРИВАНЕ ОТ КЪДЕ
Съкратена декларация
Операторът Truncate премахва всички данни от съществуваща таблица в база данни, но запазва същата структура на таблицата, също ограничения на целостта, привилегии за достъп и връзките с други таблици. Така че не се изисква да дефинирате таблицата отново и може да се използва старата структура на таблицата, ако потребителят иска да използва таблицата отново. Truncate премахва цели данни, като освобождава страниците с данни, използвани за съхраняване на данни, и само тези освобождавания на страници се съхраняват в регистъра на транзакциите. Следователно командата truncate използва само по-малко системни и транзакционни ресурси за работа, така че е по-бърза от другите свързани команди. Truncate е DDL команда, така че използва автоматични ангажименти преди и след изпълнението на изявлението. Следователно, truncate не може да върне данните отново по никакъв начин. Той освобождава място в паметта, използвано от таблицата след изпълнението. Но изразът Truncate не може да се приложи върху таблиците, на които се правят препратки с ограничения на външен ключ.
Следва общият синтаксис за оператора Truncate.
ТРАНСКАТА МАСА
Каква е разликата между Delete и Truncate? 1. Командите за изтриване и отрязване премахват данни от съществуващи таблици в база данни, без да навредят на структурата на таблицата или други препратки към таблицата. 2. Командата Delete обаче може да се използва за изтриване на конкретни редове само в таблица, като се използва съответно условие, или за изтриване на всички редове без никакво условие, докато командата Truncate може да се използва само за изтриване на цели данни в таблицата. 3. Delete е DML команда и тя може да върне операцията обратно, ако е необходимо, но Truncate е DDL команда, така че е оператор за автоматично фиксиране и не може да бъде върнат по никакъв начин. Затова е важно тази команда да се използва внимателно при управлението на база данни. 4. Операцията Truncate изразходва по-малко системни ресурси и ресурси от регистъра на транзакциите от операцията Delete, поради което Truncate се счита за по-бърза от Delete. 5. Също така, Delete не освобождава пространството, използвано от таблицата, докато Truncate освобождава използваното пространство след изпълнението, така че Delete не е ефективно в случай на изтриване на всички данни от таблица на базата данни. 6. Въпреки това, Truncate няма право да използва, когато таблицата е препратена от ограничение на външен ключ и в този случай може да се използва командата Delete вместо Truncate. 7. И накрая, и двете команди имат предимства и недостатъци при прилагането им в Системите за управление на бази данни и потребителят трябва да е наясно с използването на тези команди по подходящ начин за постигане на добри резултати. |