Odstrániť vs Skrátiť
Príkazy SQL (Structure Query Language), Delete a Truncate, sa používajú na zbavenie sa údajov uložených v tabuľkách v databáze. Vymazať je príkaz DML (Data Manipulation Language) a odstráni niektoré alebo všetky riadky tabuľky. Klauzula „Where“sa používa na určenie riadkov, ktoré sa majú vymazať, a ak sa klauzula Where nepoužíva s príkazom Delete, odstráni všetky údaje z tabuľky. Skrátiť je príkaz DDL (Data Definition Language) a odstráni z tabuľky celé údaje. Oba tieto príkazy nezničia štruktúru tabuľky a odkazy na tabuľku a podľa potreby sa odstránia iba údaje.
Odstrániť výpis
Príkaz Delete umožňuje používateľovi odstrániť údaje z existujúcej tabuľky v databáze na základe zadanej podmienky a na určenie tejto podmienky sa používa klauzula „Where“. Príkaz na odstránenie sa označuje ako prihlásená exekúcia, pretože odstráni naraz iba jeden riadok a v protokole transakcií ponechá záznam pre každé odstránenie riadku. To teda vedie k spomaleniu operácie. Vymazať je príkaz DML, a preto sa pri vykonaní príkazu automaticky nespustí. Preto je možné operáciu odstránenia vrátiť späť, aby ste v prípade potreby mohli znova získať prístup k údajom. Po vykonaní príkazu Delete by mal byť potvrdený alebo vrátený späť, aby sa zmeny uložili natrvalo. Príkazom Delete sa neodstráni tabuľková štruktúra tabuľky z databázy. Taktiež nedealokuje pamäťový priestor, ktorý používa tabuľka.
Typická syntax príkazu Odstrániť je uvedená nižšie.
ODSTRÁNIŤ Z
alebo
ODSTRÁNIŤ ODKIAĽ
Skrátené vyhlásenie
Príkaz Truncate odstráni všetky údaje z existujúcej tabuľky v databáze, ale zachová rovnakú štruktúru tabuľky, tiež obmedzenia integrity, prístupové oprávnenia a vzťahy k iným tabuľkám. Nie je teda potrebné znova definovať tabuľku a je možné použiť starú štruktúru tabuľky, ak chce používateľ tabuľku znovu použiť. Skrátiť odstráni celé údaje zrušením umiestnenia údajových stránok použitých na uchovanie údajov a v denníku transakcií sa zachovajú iba tieto pridelenia stránok. Príkaz truncate preto na svoju činnosť využíva iba menej systémových prostriedkov a prostriedkov denníka transakcií, takže je rýchlejší ako iné súvisiace príkazy. Skrátiť je príkaz DDL, takže používa automatické záväzky pred a po vykonaní príkazu. Orezanie teda nemôže žiadnym spôsobom vrátiť údaje späť. Po vykonaní uvoľní pamäťový priestor, ktorý používa tabuľka. Príkaz Zkrátiť sa ale nedá použiť na tabuľky, na ktoré odkazujú obmedzenia cudzieho kľúča.
Nasleduje bežná syntax príkazu Truncate.
SKRATKA TABUĽKA
Aký je rozdiel medzi odstránením a skrátením? 1. Príkazy Delete and Truncate odstránia údaje z existujúcich tabuliek v databáze bez poškodenia štruktúry tabuľky alebo iných odkazov na tabuľku. 2. Príkaz Delete je však možné použiť na odstránenie konkrétnych riadkov iba v tabuľke s použitím relevantnej podmienky alebo na odstránenie všetkých riadkov bez akejkoľvek podmienky, zatiaľ čo príkaz Truncate je možné použiť iba na odstránenie celých údajov z tabuľky. 3. Delete je príkaz DML a v prípade potreby môže operáciu vrátiť späť, ale Truncate je príkaz DDL, takže ide o príkaz automatického potvrdenia a nemožno ho nijakým spôsobom vrátiť späť. Preto je dôležité tento príkaz pri správe databázy používať opatrne. 4. Operácia skrátenia spotrebuje menej systémových prostriedkov a prostriedkov denníka transakcií ako operácia odstránenia, preto sa skrátenie považuje za rýchlejšie ako odstránenie. 5. Funkcia Delete tiež neprerozdelí priestor používaný v tabuľke, zatiaľ čo program Truncate uvoľní miesto použité po vykonaní, takže príkaz Delete nie je účinný v prípade odstránenia všetkých údajov z tabuľky databázy. 6. Zkracovanie však nie je dovolené používať, ak sa na tabuľku odkazuje obmedzenie cudzím kľúčom, a v takom prípade je možné namiesto príkazu Truncate použiť príkaz Odstrániť. 7. Nakoniec majú obidva tieto príkazy výhody a nevýhody pri ich použití v systémoch správy databáz a používateľ by si mal uvedomiť, ako tieto príkazy správne používať, aby dosiahol dobré výsledky. |