Forskel mellem truncate og delete Forskellen mellem

Anonim

Dataoprettelse og manipulation danner basis for databaser, og vi kalder det som henholdsvis DDL og DML. En DDL er en forkortelse til Data Definition Sprog. Det kunne enten oprette eller ændre datastrukturerne i databaserne, og de kunne ikke bruges til at ændre de data, der var til stede på tabellerne. For eksempel har vi kommandoer, der bare opretter et bord med de angivne tabelattributter, men det tilføjer aldrig nogen rækker i tabellen. Men en DML, Data Manipulation Language, er i stand til at tilføje, slette eller ændre data i tabellerne. DDL-kommandoerne handler som hovedregel om bordstrukturerne, mens DML-kommandoerne omhandler de faktiske data. Lad det være, hvorfor afviger vi bare fra emnet "Forskel mellem trunker og slet"? Der er grunde til, at vi talte om DML og DDL. Du ville forstå det i den foregående debat.

Hvad er en truncate-kommando?

Formålet med en truncate-kommando er at slette hele tabellen. Så når du bruger en truncate-kommando, går du tabt alle dataene på bordet, og du bør være forsigtig med at bruge den. Lad os vide, hvordan du bruger det.

Syntetikken af ​​truncate:

TRUNCATE TABLE tabelnavn ;

Her skal du angive navnet på tabellen, der skal slettes på det hele. Dette sikrer, at der sidder bord i hukommelsesområdet. Her er et eksempel på at bruge Truncate.

Herunder er 'medarbejder'-tabellen og kigger bare på rækkerne af data i den.

EMP-id EMP-navn betegnelse
1011 Jack Clerk
1012 Rosy Administration
1014 Nancy > Finans
Lad os nu udstede nedenstående kommando på medarbejderbordet.

TRUNCATE TABLE

medarbejder; Her er resultatet af ovenstående syntaks, og der er ingen data i den.

emp-id

emp-name betegnelse Hvad er en Slet kommando?

Formålet med en kommando Slet er at fjerne de angivne rækker fra tabellen. Her anvendes 'Where' -klausul her for at angive de rækker, der skal slettes. Når vi ikke angiver rækkerne, vil kommandoen slette alle rækkerne i tabellen. Bare se på syntaksen af ​​den.

DELETE FROM

medarbejder; Ovenstående syntaks sletter alle rækker fra medarbejderbordet. Så den resulterende tabel vil ikke indeholde nogen data.

Slet fra

medarbejder hvor emp-id = 1011; Denne sætning sletter bare en enkelt række, hvis emp-id er 1011. Således vil den resulterende tabel være som nedenfor.

emp-id

emp-navn betegnelse 1012
Rosy Admin 1014
Nancy Finansiering Forskelle:

Truncate er en DDL; Slet er en DML:

  • Vi har diskuteret ovenfor, hvordan DDL og DML arbejder i vores ovenstående diskussion.Truncate-kommandoen er en DDL, og den fungerer på datastrukturniveauet. Men Slet er en DML-kommando, og den fungerer på borddata. Andre eksempler på DDL er CREATE og ALTER. På samme måde kan vi sige kommandoer som SELECT, UPDATE og REPLACE er perfekte eksempler på en DML. Hvordan fungerer truncate og delete:
  • Så snart vi udsteder kommandoen Truncate, søger den bare efter den angivne tabel. Derefter fjerner den helt al data fra hukommelsen. Men arbejdsproceduren er lidt anderledes i tilfælde af en sletning. Her kopieres de originale tabeldata til rummet kaldet 'Roll back'-rummet, før den faktiske data manipulation udføres. Derefter foretages ændringerne på det faktiske borddataområde. Så begge er forskellige i den måde de arbejder på. Truncate

-> fjern hele data fra tabellen -> Tabelrummet frigøres nu. Slet

-> Kopier de originale tabeldata til Roll Back Space -> Slet de angivne data / hele tabellen -> Tabelrummet frigøres, men Roll Back-pladsen er fyldt. Rul tilbage:

  • En rulle tilbage er som en Fortryd kommando i vores Microsoft-tilbehør. Det bruges til at annullere de ændringer, vi har lavet for nylig i. e. fra det sidste gemte punkt. For at udføre operationen skal dataene kopieres til Roll Back-rummet, før det redigeres. Selvom disse Rollbacks kræver ekstra hukommelse, er de yderst nyttige til at komme tilbage til originalen. Især når du redigerer ved en fejltagelse! Lad os komme til Truncate og Delete med hensyn til Roll back nu. Som vi diskuterede ovenfor bruger Truncate aldrig et rullefelt, og vi kunne ikke komme tilbage til de oprindelige data. Men Slet kommando bruger rulle tilbage plads og vi kunne bare enten bruge 'Commit' eller 'Rollback' for at acceptere eller annullere ændringerne. Udløsere:
  • For dem der har brug for en forklaring om udløsere, er her en lille note. Udløsere er et forud specificeret sæt operationer / operationer, der skal aktiveres, når tabellen møder en bestemt tilstand. For eksempel kan vi udløse en ændring af lønbeløbet, når en medarbejders erfaring med virksomheden er mere end et år. Disse udløsere kunne også arbejde på andre tabeller. For eksempel kunne vi opdatere finansieringsoversigten, så snart der er sket en lønstigning for en medarbejder. Truncate er en DDL-kommando, udløseren er ikke tilladt her. Men en sletning er en DML-kommando, udløsere er tilladt her.

Hvilken er hurtigere?

  • Som du gættede, ville kommandoen Truncate være hurtigere end kommandoen Slet. Den førstnævnte kunne fjerne alle dataene, og der er ingen grund til at tjekke for eventuelle matchende forhold. De originale data kopieres heller ikke til tilbagekaldingspladsen, og det sparer meget tid. Disse to faktorer gør Truncate arbejde hurtigere end sletningen. Kan vi bruge WHERE-klausul?
  • Klausulen "Hvor" bruges til at angive bestemte matchningsbetingelser og er intet til med Truncate. Da Truncate aldrig ser efter nogen matchende forhold, og det bare fjerner alle rækkerne, kunne vi ikke bruge en 'Where' -klausul her.Men vi kunne altid angive betingelsen ved hjælp af "hvor" -klausulen i kommandoen Slet. Hvilket optager mere plads?
  • Afkortningen går ikke til at bruge tilbagekoblingsrummet, og det sparer den hukommelse. Men sletning behøver en backup i form af tilbagekaldingsplads og derfor kræver det mere hukommelsesplads end afkortet. Så det er forskellene og lad os se på i en tabelform.

S. Ingen

Forskelle i Afkort Slet 1.
DDL eller DML? Det er en DDL, og den fungerer på datastrukturniveau. Andre eksempler på DDL er CREATE og ALTER. Det er en DML-kommando, og den fungerer på borddata. DML står for Data Manipulation Language. Kommandoer som SELECT, UPDATE og REPLACE er perfekte eksempler på en DML. DML står for Data Manipulation Language.

2.

Hvordan virker det? Så snart vi udsteder kommandoen Truncate, søger den bare efter den angivne tabel. Derefter fjerner den helt al data fra hukommelsen. Her kopieres de originale tabeldata til pladsen kaldet 'Roll back'-rummet, før den faktiske data manipulation foretages. Derefter foretages ændringerne på det faktiske borddataområde. 3.
RollBack Kommandoen Truncate bruger aldrig et rullefelt og vi kunne ikke komme tilbage til de oprindelige data. Et tilbagekoblingsrum er en eksklusiv og er optaget, når DML-kommandoer udstedes. Kommandoen Slet bruger rulleplads og vi kunne bare enten bruge 'Commit' eller 'Rollback' til at acceptere eller annullere ændringerne. 4.

Triggers Truncate er en DDL-kommando, triggere er ikke tilladt. Slet er en DML-kommando, udløsere er tilladt her. 5.

Hvilken er hurtigere? Det kunne fjerne alle dataene, og der er ingen grund til at tjekke for eventuelle matchende forhold. De originale data kopieres heller ikke til tilbagekaldingspladsen, og det sparer meget tid. Disse to faktorer gør Truncate arbejde hurtigere end sletningen. Det bruger tilbagekoblingsrummet og altid skal de originale data beholdes på det. Dette er en ekstra byrde og tager på sin side meget tid end Truncate.

6.
Kan vi bruge WHERE-klausul? Da Truncate aldrig ser efter nogen matchende forhold, og det bare fjerner alle rækkerne, kunne vi ikke bruge en 'Where' -klausul her. Men vi kunne altid angive betingelsen ved hjælp af "where" -klausulen i kommandoen Slet. 7.
Hvilket optager mere plads? Afkortningen går ikke til at bruge tilbagekoblingsrummet, og det sparer den hukommelse. Det kræver en backup i form af tilbagekaldingsplads og derfor kræver det mere hukommelsesplads end afkortet. At kende forskellene mellem de to enheder udvider viden om begge dele! Du er landet på en rigtig vej i. e. websiden for at forstå forskellene, især mellem truncate og delete kommandoer. Håber du er nu klar med sine forskelle og lad os vide, om vi havde hjulpet dig med at forstå det. Du kan også hjælpe os med at pege på, hvad der er tilbage!