Razlika med brisanjem in odrezanjem

Izbriši vs Odreži

Oba ukaza SQL (jezik za poizvedbo v strukturi), Delete in Truncate se uporabljata za odstranjevanje podatkov, shranjenih v tabelah v bazi podatkov. Delete je stavek DML (jezik manipulacije podatkov) in odstrani nekatere ali vse vrstice tabele. Klavzula "Kjer" se uporablja za določanje vrstic, ki jih je treba izbrisati, in če se klavzula Where ne uporablja z stavkom Delete, odstrani vse podatke v tabeli. Truncate je stavek DDL (Data Definition Language) in iz tabele odstrani celotne podatke. Oba ukaza ne uničujeta strukture tabele in sklicev na tabelo, po potrebi pa se odstranijo samo podatki.

Izbriši izjavo

Izjava Delete izbriše uporabnika, da odstrani podatke iz obstoječe tabele v bazi podatkov na podlagi določenega pogoja, za določitev tega pogoja pa se uporablja klavzula Kjer. Ukaz Delete se označi kot zabeležena izvedba, ker izbriše samo eno vrstico hkrati in hrani zapis za vsako brisanje vrstic v dnevniku transakcij. Torej, to povzroči, da je delovanje počasnejše. Delete je stavek DML in se med izvajanjem ukaza samodejno ne zaveže. Zato je operacijo Delete mogoče po potrebi vrniti nazaj do podatkov. Po izvedbi ukaza Delete ga je treba zavezati ali vrniti, da se trajne spremembe shranijo. Izjava Delete ne odstrani strukture tabele tabele iz baze podatkov. Prav tako ne obravnava pomnilniškega prostora, ki ga uporablja tabela.

Spodaj je navedena značilna sintaksa za ukaz Delete.

IZPUSTI OD

ali

IZKLJUČITE OD KJE

Izrežite izjavo

Izrez Truncate odstrani vse podatke iz obstoječe tabele v zbirki podatkov, vendar ohrani enako strukturo tabel, tudi omejitve integritete, privilegije dostopa in razmerja do drugih tabel. Torej ni treba znova definirati tabele in uporabiti je mogoče staro strukturo tabele, če želi uporabnik tabelo ponovno uporabiti. Truncate odstrani celotne podatke tako, da razporedi strani s podatki, ki se uporabljajo za hranjenje podatkov, in le te premestitve strani se hranijo v dnevniku transakcij. Zato ukaz skrajšanja za delovanje uporablja le manj virov sistema in transakcijskih dnevnikov, zato je hitrejši od drugih povezanih ukazov. Truncate je ukaz DDL, zato uporablja samodejne zaveze pred in po izvedbi stavka. Zato skrajšani podatki nikakor ne morejo znova vrniti podatkov. Osvobodi pomnilniški prostor, ki ga tabela uporabi po izvedbi. Vendar Trncate izjave ni mogoče uporabiti v tabelah, na katere se sklicujejo omejitve tujih ključev.

Sledi skupna sintaksa za stavek Truncate.

TRUNCATNA TABELA

Kakšna je razlika med Delete in Truncate?

1. Ukazi za brisanje in skrajšanje odstranijo podatke iz obstoječih tabel v bazi podatkov, ne da bi pri tem škodovali strukturi tabel ali drugim sklicevanjem na tabelo.

2. Toda ukaz Delete lahko uporabite za brisanje določenih vrstic samo v tabeli z ustreznim pogojem ali za brisanje vseh vrstic brez kakršnega koli pogoja, medtem ko lahko ukaz Truncate uporabite samo za brisanje celotnih podatkov v tabeli.

3. Delete je ukaz DML in po potrebi lahko vrne postopek, toda Truncate je ukaz DDL, zato je izjava o samodejnem zagonu in ga ni mogoče nikakor povrniti. Zato je pomembno, da ta ukaz previdno uporabite pri upravljanju z bazami podatkov.

4. Operacija skrajšanja porabi manj sistemskih virov in virov dnevnika transakcij kot operacija Delete, zato se Truncate šteje za hitrejšo od Delete.

5. Prav tako Delete ne obravnava prostora, ki ga uporablja tabela, medtem ko Truncate sprosti prostor, ki je bil uporabljen po izvedbi, zato Delete ni učinkovito v primeru, da izbrišete celotne podatke iz tabele baze podatkov.

6. Vendar Truncate ni dovoljeno uporabljati, kadar se na tabelo sklicuje omejitev tujega ključa, in v tem primeru lahko namesto Truncate uporabite ukaz Delete..

7. Končno imata oba ukaza prednosti in tudi slabosti pri uporabi v sistemih za upravljanje podatkovnih baz in uporabnik se mora zavedati, da te ukaze uporablja pravilno, da doseže dobre rezultate.