Kustuta vs kärbi
Mõlemat SQL-i (Structure Query Language) käsku Kustuta ja Tühista kasutatakse andmebaasis tabelites salvestatud andmete vabanemiseks. Kustuta on DML (Data Manipulation Language) käsk ja see eemaldab mõned või kõik tabeli read. Kustutamiseks vajalike ridade täpsustamiseks kasutatakse lauset „Kus klausel” ja kui lauset Kustutamisel ei kasutata klauslit Kust, eemaldab see kõik tabeli andmed. Truncate on DDL (Data Definition Language) käsk ja see eemaldab tabelist kõik andmed. Mõlemad käsud ei hävita tabeli struktuuri ega viiteid tabelile ning vajadusel eemaldatakse ainult andmed.
Kustuta avaldus
Avalduse kustutamine võimaldab kasutajal andmebaasi olemasolevast tabelist andmeid teatud tingimuse alusel eemaldada ja selle tingimuse määramiseks kasutatakse klauslit „Kus”. Käsku Kustuta nimetatakse logitud täitmiseks, kuna see kustutab korraga ainult ühe rea ja hoiab tehingulogis kirje iga rea kustutamise kohta. See muudab operatsiooni aeglasemaks. Kustuta on DML-lause ja nii ei tehta seda käsu täitmisel automaatselt. Seetõttu saab andmete kustutamiseks vajaduse korral kustutamisoperatsiooni tagasi pöörata. Pärast käsu Kustuta käivitamist tuleks see muudatuste jäädavaks salvestamiseks siduda või tagasi pöörata. Avalduse kustutamine ei eemalda andmebaasi tabeli tabeli struktuuri. Samuti ei jaga see tabeli kasutatavat mäluruumi.
Tüüpiline süntaks käsule Kustuta on toodud allpool.
Kustuta
või
Kustuta kust
Lühendatud avaldus
Lühendatud lause eemaldab kõik andmed andmebaasi olemasolevast tabelist, kuid säilitab sama tabeli struktuuri, samuti terviklikkuse piirangud, juurdepääsuõigused ja seosed teiste tabelitega. Seega pole vaja tabelit uuesti määratleda ja vana tabeli struktuuri saab kasutada, kui kasutaja soovib tabelit uuesti kasutada. Tükeldamine eemaldab terved andmed, jagades andmete säilitamiseks kasutatud andmelehed ja tehingulogis hoitakse ainult neid lehtede jaotusi. Seetõttu kasutab truncate käsk toimimiseks ainult vähem süsteemi- ja tehingulogi ressursse, seega on see kiirem kui muud seotud käsud. Truncate on DDL-käsk, seega kasutab see automaatseid kohustusi enne ja pärast lause täitmist. Seega ei saa kärpimine andmeid mingil viisil uuesti tagasi kerida. See vabastab mälu, mida tabel kasutab pärast täitmist. Kuid Truncate-lauset ei saa rakendada tabelitele, millele on viidatud võõrvõti piirangutega.
Järgneb Truncate'i lause tavaline süntaks.
LÕPPETABEL