Ištrinti prieš sutrumpinti
Abi SQL (struktūros užklausos kalba) komandos, Delete ir Truncate yra naudojamos duomenų bazės lentelėse saugomiems duomenims pašalinti. Ištrinti yra DML (Data Manipulation Language) sakinys, kuris pašalina kai kurias arba visas lentelės eilutes. Sąlyga „Where“naudojama norint nurodyti eilutes, kurias reikia ištrinti, o jei sąlyga Where nenaudojama su teiginiu „Delete“, ji pašalina visus lentelės duomenis. Sutrumpinti yra DDL (duomenų apibrėžimo kalba) sakinys, kuris pašalina visus duomenis iš lentelės. Abi šios komandos nesunaikina lentelės struktūros ir nuorodų į lentelę, o prireikus pašalinami tik duomenys.
Ištrinti pareiškimą
Teiginys Ištrinti leidžia vartotojui pašalinti duomenis iš esamos duomenų bazės lentelės pagal nurodytą sąlygą, o sąlyga „Where“naudojama šiai sąlygai nustatyti. Ištrynimo komanda vadinama užregistruotu vykdymu, nes ji vienu metu ištrina tik vieną eilutę ir išsaugo kiekvienos eilutės ištrynimo įrašą operacijų žurnale. Taigi, dėl to operacija sulėtėja. Ištrinti yra DML sakinys, todėl jis nėra automatiškai įpareigotas vykdant komandą. Todėl, jei reikia, ištrynimo operaciją galima atšaukti, kad vėl galėtumėte pasiekti duomenis. Įvykdžius komandą Naikinti, ji turi būti įpareigota arba atšaukta, kad pakeitimai būtų išsaugoti visam laikui. Teiginys Delete nepašalina lentelės struktūros iš duomenų bazės. Be to, ji neatskiria lentelės naudojamos atminties vietos.
Tipinė komandos Naikinimo sintaksė nurodyta toliau.
IŠTRINTI IŠ
arba
IŠTRINTI IŠ KUR
Sutrumpinti teiginį
Teiginys Sutrumpinti pašalina visus duomenis iš esamos duomenų bazės lentelės, tačiau išsaugo tą pačią lentelės struktūrą, taip pat vientisumo apribojimus, prieigos teises ir ryšius su kitomis lentelėmis. Taigi, lentelės iš naujo apibrėžti nereikia, o jei vartotojas nori pakartotinai naudoti lentelę, galima naudoti senąją lentelės struktūrą. Sutrumpinimas pašalina visus duomenis, išskirdamas duomenų puslapius, naudojamus duomenims saugoti, ir tik šie puslapių paskirstymai saugomi operacijų žurnale. Todėl komandai sutrumpinti sunaudojama tik mažiau sistemos ir operacijų žurnalo išteklių, todėl ji yra greitesnė nei kitos susijusios komandos. Sutrumpinti yra DDL komanda, todėl ji naudoja automatinius įsipareigojimus prieš ir po teiginio vykdymo. Taigi sutrumpintas jokiu būdu negali vėl grąžinti duomenų. Po vykdymo atlaisvinama lentelės naudojama atminties vieta. Tačiau sutrumpintas sakinys negali būti taikomas lentelėms, kurios nurodytos išorinio rakto apribojimais.
Toliau pateikiama bendra sutrumpinimo sakinio sintaksė.
Sutrumpinti LENTELĘ
Kuo skiriasi Ištrinti ir Sutrumpinti?
1. Komandos Ištrinti ir Sutrumpinti pašalina duomenis iš esamų duomenų bazėje esančių lentelių nepažeidžiant lentelės struktūros ar kitų nuorodų į lentelę.
2. Tačiau komandą Naikinti galima naudoti norint ištrinti tik konkrečias lentelės eilutes, naudojant atitinkamą sąlygą, arba ištrinti visas eilutes be jokių sąlygų, o komandą Sutrumpinti galima naudoti tik norint ištrinti visus lentelės duomenis.
3. Ištrinti yra DML komanda ir, jei reikia, ji gali atšaukti operaciją, tačiau sutrumpinti yra DDL komanda, todėl tai yra automatinio įvykdymo sakinys ir jokiu būdu negalima atšaukti. Todėl svarbu šią komandą naudoti atsargiai tvarkant duomenų bazę.
4. Sutrumpinimo operacija sunaudoja mažiau sistemos išteklių ir operacijų žurnalo išteklių nei operacija „Delete“, todėl sutrumpinimas laikomas greitesniu nei „Delete“.
5. Be to, „Delete“neatskiria lentelės naudojamos vietos, o „Sutrumpinimas“atlaisvina vietos, sunaudotos po vykdymo, todėl ištrynimas nėra efektyvus, jei ištrinami visi duomenys iš duomenų bazės lentelės.
6. Tačiau sutrumpinti neleidžiama naudoti, kai lentelę nurodo išorinio rakto apribojimas, ir tokiu atveju vietoj Sutrumpinti galima naudoti komandą Naikinti.
7. Galiausiai, abi šios komandos turi privalumų ir trūkumų taikant jas duomenų bazių valdymo sistemose, todėl vartotojas turi žinoti, kad šias komandas reikia naudoti tinkamai, kad pasiektų gerų rezultatų.