Diferența dintre trunchiere și ștergere Diferența dintre
Crearea și manipularea de date formează baza bazelor de date și o 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 creează doar 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 de acum înainte.
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 Truncate:
TRUNCATE TABLE table-name ;
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 | denumire |
1011 | Jack | Grefa |
1012 | Rosy | Administrator |
1014 | Nancy > Finanțe | |
TRUNCATE TABLE
angajat; Aici rezultă sintaxa de mai sus și nu există date în ea.
emp-id
emp-name | desemnarea | 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.
DELETE DE LA
angajat; Sintaxa de mai sus șterge toate rândurile din tabelul "angajat". Deci tabela rezultantă nu conține date.
DELETE DE LA
angajat WHERE emp-id = 1011; Această declarație șterge doar un singur rând al cărui emp-id este 1011. Deci, tabela rezultantă ar fi la fel ca în cele de mai jos.
emp-id
denumirea emp-name | 1012 | |
Rosy | Admin | 1014 |
Nancy | Finance | un DDL; Ștergerea este o LMD: |
Am discutat mai sus cum funcționează DDL și LMD în discuția noastră de mai sus.Comanda Truncate este un DDL și funcționează la nivelul structurii de date. Dar Ștergerea este o comandă DML și funcționează pe baza datelor din tabel. Alte exemple pentru DDL sunt CREATE și ALTER. În mod similar, am putea spune că comenzile precum SELECT, UPDATE și REPLACE sunt exemple perfecte pentru o LMD.
- Cum funcționează Truncate și Ștergere: De îndată 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 ștergeri. 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ă.
- Truncate -> eliminați datele din tabel -> Spațiul tabelă este eliberat acum.
Ștergeți -> 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.
Rulare î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 i. e. de la 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 de redirecționare și am putea folosi fie 'Commit', fie 'RollBack' pentru a accepta sau a anula modificările.
- declanșatoare: 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. Care 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. Nu
Diferențe în