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