Diferența între trunchiere și ștergere

Crearea și manipularea de date constituie baza bazelor de date și le numim DDL și, respectiv, DML. Un DDL este o abreviere pentru limbajul de definire a datelor. Ar putea crea sau modifica structurile de date din bazele de date și nu ar putea fi folosite pentru a modifica datele prezente pe tabele. De exemplu, avem comenzi care doar creează un tabel cu atributele de tabelă specificate, dar niciodată nu adaugă nici o rânduri în tabel. Dar un DML, Limbajul de manipulare a datelor, este capabil de a adăuga, șterge sau modifica date în tabele. Ca regulă generală, comenzile DDL se ocupă de structurile de tabele, în timp ce comenzile DML se referă la datele reale. Lăsați-l să fie, de ce ne abatem de la subiectul "Diferența între trunchiere și ștergere"? Există motive pe care le-am vorbit despre DML și DDL. Ați înțelege-o în discuția care a urmat.

Ce este o comandă Truncate?

Scopul unei comenzi Truncate este de a șterge întregul tabel. Atunci când utilizați o comandă Truncate, veți pierde toate datele de pe masă și ar trebui să fiți atenți la utilizarea acesteia. Anunță-ne cum să o folosim.

Sintaxa lui Truncate:

        TRUNCATE TABLE tabel nume-;

Aici trebuie să specificați numele tabelului care ar trebui șters în întregime. Acest lucru asigură că ar exista o masă care să stea în spațiul de memorie. Iată un exemplu de folosire a Truncate.

Mai jos este tabelul "angajat" și doar uita-te la rândurile de date din el.

emp id- emp-name desemnare
1011 Jack Funcționar
1012 Roz admin
1014 Nancy Finanţa

Acum, să emităm comanda de mai jos pe tabelul angajaților.

        TRUNCATE TABLE angajat;

Aici rezultă sintaxa de mai sus și nu există date în ea.

emp id- emp-name desemnare

Ce este o comandă de ștergere?

Scopul unei comenzi Delete este de a elimina rândurile specificate din tabel. Aici, clauza "Unde" este utilizată aici pentru a specifica rândurile care trebuie șterse. Când nu specificăm rândurile, comanda va șterge toate rândurile din tabel. Uită-te la sintaxa lui.

        Ștergeți din angajat;

Sintaxa de mai sus șterge toate rândurile din tabelul "angajat". Deci tabela rezultantă nu conține date.

Ștergeți din angajat UNDE emp-id = 1011;

Această declarație șterge doar un singur rând al cărui emp-id este 1011. Deci, tabelul rezultat ar fi cel descris mai jos.

emp id- emp-name desemnare
1012 Roz admin
1014 Nancy Finanţa

diferenţe:

  • Truncate este un DDL; Ștergerea este o LMD: Am discutat mai sus cum funcționează DDL și LMD în discuția de mai sus. Comanda Truncate este un DDL și funcționează la nivelul structurii de date. Dar Ștergerea este o comandă DML și operează pe datele din tabel. Alte exemple pentru DDL sunt CREATE și ALTER. În mod similar, am putea spune că comenzile precum SELECT, UPDATE și INSERT sunt exemple perfecte pentru o LMD.
  • Cum funcționează trunchiul și ștergerea: Imediat ce emitem comanda Truncate, ea caută doar tabelul specificat. Apoi elimină complet toate datele din memorie. Dar procedura de lucru este puțin diferită în cazul unei Șterge. Aici, datele din tabelul original sunt copiate în spațiu numită spațiu "Roll back" înainte de a efectua manipularea reală a datelor. Apoi, modificările se efectuează pe spațiul real de date din tabele. Deci, ambii diferă în felul în care lucrează.

Trunchia -> eliminați toate datele din tabel -> Spațiul tabelului este eliberat acum.

Șterge -> Copiați datele din tabelul original în spațiul Roll Back -> ștergeți datele specificate / întregul tabel -> Spațiul tabelului este eliberat, dar spațiul Roll Back este umplut.

  • Rulați înapoi: Rularea înapoi este ca o comandă Undo în accesoriile Microsoft. Este folosit pentru a anula modificările pe care le-am făcut recent, adică din ultimul punct salvat. Pentru a efectua operația, datele trebuie copiate în spațiul Roll Back înainte de a fi editate. Deși aceste back-back-uri necesită memorie suplimentară, acestea sunt extrem de utile pentru a reveni la original. Mai ales atunci când editezi din greșeală! Haideți să venim la Truncate și Ștergeți cu privire la reluarea acum. După cum am discutat mai sus, Truncate nu folosește niciodată un spațiu înapoi și nu am putut reveni la datele originale. Dar comanda "Delete" folosește spațiul "roll back" și putem folosi fie "Commit", fie "RollBack" pentru a accepta sau anula modificările.
  • Declanșările: Pentru cei care au nevoie de o explicație despre declanșatoare, este o notă mică. Declanșatoarele sunt un set de operații / operații predefinite care ar trebui să fie activat atunci când tabelul întâlnește o anumită condiție. De exemplu, am putea declanșa schimbarea valorii salariului atunci când experiența unui angajat cu compania este mai mare de un an. Aceste declanșatoare ar putea funcționa și pe alte mese. De exemplu, am putea actualiza tabelul de finanțare de îndată ce a fost făcută o creștere a salariului pentru un angajat.

Truncate este o comandă DDL, declanșatorul nu este permis aici. Dar o ștergere este o comandă DML, declanșatorii sunt permise aici.

  • Ceea ce este mai rapid? După cum ați ghicit, comanda Truncate ar fi mai rapidă decât comanda Ștergere. Primul ar putea elimina toate datele și nu este nevoie să verificați condițiile de potrivire. De asemenea, datele originale nu sunt copiate în spațiul de redare și acest lucru economisește mult timp. Acești doi factori fac ca Truncate să funcționeze mai repede decât Șterge.
  • Putem folosi clauza WHERE? Clauza "Unde" este folosită pentru a specifica anumite condiții de potrivire și nu are nimic de-a face cu Truncate. Cum Truncate nu caută niciodată condiții potrivite și doar elimină toate rândurile, nu am putut folosi aici o clauză "Unde". Dar am putut întotdeauna să specificăm condiția cu ajutorul clauzei "unde" în comanda Ștergere.
  • Care ocupă mai mult spațiu? Trunchiul nu folosește spațiul de redare și salvează memoria. Dar ștergerea are nevoie de o copie de rezervă sub forma unui spațiu de redare și, prin urmare, necesită mai mult spațiu de memorie decât trunchiul.

Deci, acestea sunt diferențele și să ne uităm într-o formă tabulară.

S.No Diferențele în Trunchia Șterge
1. DDL sau DML? Este un DDL și funcționează la nivelul structurii de date. Alte exemple pentru DDL sunt CREATE și ALTER. Este o comandă DML și operează pe datele din tabel. DML este un limbaj pentru manipularea datelor. Comenzile precum SELECT, UPDATE și INSERT sunt exemple perfecte pentru o DML. DML este un limbaj pentru manipularea datelor.

2. Cum functioneazã? Imediat ce emitem comanda Truncate, ea caută doar tabelul specificat. Apoi elimină complet toate datele din memorie. Aici, datele din tabelul original sunt copiate în spațiu numită spațiu "Roll back" înainte de a efectua manipularea reală a datelor. Apoi, modificările se efectuează pe spațiul real de date din tabele.
3. RollBack Comanda Truncate nu folosește niciodată un spațiu de redirecționare și nu am putut reveni la datele originale. Un spațiu de revizuire este unul exclusiv și este ocupat la emiterea comenzilor DML. Comanda de ștergere utilizează spațiul de redirecționare și am putea folosi fie "Commit", fie "RollBack" pentru a accepta sau a anula modificările.

4. declanșatoare Truncate este o comandă DDL, declanșatoarele nu sunt permise. Ștergerea este o comandă DML, sunt activate declanșatoarele aici.

5. Ceea ce este mai rapid? Ar putea elimina toate datele și nu este nevoie să verificați condițiile de potrivire. De asemenea, datele originale nu sunt copiate în spațiul de redare și acest lucru economisește mult timp. Acești doi factori fac ca Truncate să funcționeze mai repede decât Șterge.

Utilizează spațiul de redare și întotdeauna trebuie păstrate datele originale. Aceasta este o povară suplimentară și, la rândul său, durează mult timp decât Truncate.
6. Putem folosi clauza WHERE? Cum Truncate nu caută niciodată condiții de potrivire și doar elimină toate rândurile, nu am putut folosi o clauză "Unde" aici. Dar am putut întotdeauna să specificăm condiția cu ajutorul clauzei "unde" în comanda Ștergere.
7. Care ocupă mai mult spațiu? Trunchiul nu folosește spațiul de redare și salvează memoria. Este nevoie de o copie de rezervă sub forma unui spațiu de redare și, prin urmare, necesită mai mult spațiu de memorie decât trunchiul.

Cunoașterea diferențelor dintre oricare două entități lărgește cunoștințele despre ambele! Ați aterizat pe o cale dreaptă, adică pe pagina web, pentru a înțelege diferențele, în special între comenzile trunchiere și ștergere. Sper că sunteți clar acum cu diferențele sale și spuneți-ne dacă v-am fi ajutat să o înțelegeți. Ne puteți ajuta, de asemenea, să arătăm ce a mai rămas!