Forskjellen mellom truncate og delete

Dataopprettelse og manipulering danner grunnlaget for databaser, og vi kaller det som henholdsvis DDL og DML. En DDL er en forkortelse for Data Definition Language. Det kan enten opprette eller endre datastrukturene i databasene, og de kan ikke brukes til å endre dataene som er tilstede på bordene. For eksempel har vi kommandoer som bare lager et bord med de angitte tabellattributtene, men det legger aldri noen rader i tabellen. Men en DML, Data Manipulation Language, er i stand til å legge til, slette eller endre data i tabellene. Generelt sett handler DDL-kommandoene om bordstrukturer, mens DML-kommandoene omhandler de faktiske dataene. La det være, hvorfor avviger vi bare fra emnet "Forskjell mellom trunker og slett"? Det er grunner til at vi snakket om DML og DDL. Du ville forstå det i den forrige kommende diskusjonen.

Hva er en truncate-kommando?

Formålet med en truncate-kommando er å slette hele tabellen. Så når du bruker en Truncate-kommando, mister du all data på bordet, og du bør være forsiktig med å bruke den. Gi oss beskjed om hvordan du bruker den.

Syntetikken av truncate:

        TRUNCATE TABLE table-navn;

Her bør du angi navnet på tabellen som skal slettes på det hele. Dette sikrer at det vil være en tabell som sitter i minnet. Her er et eksempel på bruk av Truncate.

Nedenfor er 'medarbeiderbordet' og ser bare på rader med data i den.

EMP-id EMP-navn betegnelse
1011 jekk Clerk
1012 Rosy admin
1014 Nancy Finansiere

La oss nå utstede kommandoen nedenfor på medarbeiderbordet.

        TRUNCATE TABLE ansatt;

Her er resultatet av syntaxen ovenfor og det er ingen data i den.

EMP-id EMP-navn betegnelse

Hva er en slett kommando?

Formålet med en Slett-kommando er å fjerne de angitte radene fra tabellen. Her brukes "Hvor" -klausul her for å spesifisere radene som må slettes. Når vi ikke angir radene, vil kommandoen slette alle rader i tabellen. Bare se på syntaksen av den.

        SLETT FRA ansatt;

Ovennevnte syntaks sletter alle rader fra "medarbeiderbordet". Så det resulterende tabellen vil ikke inneholde data.

SLETT FRA ansatt HVOR emp-id = 1011;

Denne setningen sletter bare en enkelt rad hvis emp-id er 1011. Så det resulterende tabellen ville være som nedenfor.

EMP-id EMP-navn betegnelse
1012 Rosy admin
1014 Nancy Finansiere

forskjeller:

  • Truncate er en DDL; Slett er en DML: Vi har diskutert over hvordan DDL og DML fungerer i vår overgående diskusjon. Kommandoen Truncate er en DDL og den opererer på datastrukturnivået. Men Delete er en DML-kommando, og den fungerer på tabelldata. Andre eksempler for DDL er CREATE og ALTER. På samme måte kan vi si kommandoene som SELECT, UPDATE og INSERT er perfekte eksempler på en DML.
  • Hvordan fungerer trunkeren og slettingen: Så snart vi utsteder kommandoen Truncate, ser den bare etter det angitte tabellen. Deretter fjerner det hele dataene fra minnet. Men arbeidsprosedyren er litt annerledes når det gjelder en slett. Her kopieres de opprinnelige tabelldataene til plass som kalles 'Rull tilbake' -rom før du gjør den faktiske datamanipuleringen. Deretter gjøres endringene på den faktiske tabelldatarommet. Så, begge deler er forskjellige i måten de jobber på.

avkorte -> fjern hele data fra tabellen -> Tabellplass er frigjort nå.

Slett -> Kopier de opprinnelige tabelldataene til Rull tilbake plass -> slett den angitte data / hele tabellen -> Tabellplassen er frigjort, men Rollback plass er fylt.

  • Rull tilbake: En rulle tilbake er som en Angre kommando i vårt Microsoft-tilbehør. Det brukes til å avbryte endringene som vi har gjort nylig, dvs. fra det siste lagrede punktet. For å utføre operasjonen, skal dataene kopieres til Roll Back-rommet før det blir redigert. Selv om disse Rollbacks krever ekstra minne, er de ekstremt nyttige for å komme tilbake til originalen. Spesielt når du redigerer ved en feil! La oss komme til Truncate og Delete med hensyn til Roll back nå. Som vi diskuterte ovenfor, bruker Truncate aldri rulleplass og vi kunne ikke komme tilbake til de opprinnelige dataene. Men Delete-kommandoen bruker rulleplass og vi kan bare enten bruke "Commit" eller "Rollback" for å godta eller avbryte endringene.
  • triggere: For de som trenger en forklaring om utløsere, er her et lite notat. Utløsere er et forhåndsspesifisert sett av operasjoner / operasjoner som skal aktiveres når bordet møter en bestemt tilstand. For eksempel kan vi utløse endring av lønnsbeløpet når en ansattes erfaring med selskapet er mer enn et år. Disse utløserne kan også fungere på andre tabeller. For eksempel kan vi oppdatere finanstabellen så snart en lønnsvekst har blitt gjort for en ansatt.

Truncate er en DDL-kommando, utløseren er ikke tillatt her. Men en Slett er en DML-kommando, utløsere er tillatt her.

  • Som er raskere? Som du gjettet, ville kommandoen Truncate være raskere enn Slett-kommandoen. Den førstnevnte kunne fjerne alle dataene, og det er ikke nødvendig å sjekke om noen matchende forhold. Også de opprinnelige dataene kopieres ikke til tilbakestillingsområdet, og dette sparer mye tid. Disse to faktorene gjør Truncate arbeid raskere enn Slett.
  • Kan vi bruke WHERE-setningen? "Hvor" -klausulen brukes til å angi bestemte samsvarsbetingelser og er ikke noe med Truncate. Som Truncate ser aldri etter matchende forhold, og det fjerner bare alle rader, vi kunne ikke bruke en "Hvor" -klausul her. Men vi kunne alltid spesifisere tilstanden ved hjelp av "hvor" -klausulen i kommandoen Slett.
  • Som har mer plass? Den trunkate skal ikke bruke rullingsplassen og det sparer det minnet. Men slett trenger en sikkerhetskopiering i form av tilbakestillingsplass og dermed krever det mer minneplass enn avkortet.

Så det er forskjellene og la oss se på i tabellform.

S.No Forskjeller i avkorte Slett
1. DDL eller DML? Det er en DDL, og den opererer på datastrukturnivå. Andre eksempler for DDL er CREATE og ALTER. Det er en DML-kommando, og den opererer på borddataene. DML står for Data Manipulation Language. Kommandoene som SELECT, UPDATE og INSERT er perfekte eksempler for en DML. DML står for Data Manipulation Language.

2. Hvordan virker det? Så snart vi utsteder kommandoen Truncate, ser den bare etter det angitte tabellen. Deretter fjerner det hele dataene fra minnet. Her kopieres de opprinnelige tabelldataene til plass som kalles 'Rull tilbake' -rom før du gjør den faktiske datamanipuleringen. Deretter gjøres endringene på den faktiske tabelldatarommet.
3. Rollback Kommandoen Truncate bruker aldri rulleplass og vi kunne ikke komme tilbake til de opprinnelige dataene. En tilbakestillingsplass er en eksklusiv og er opptatt når DML-kommandoene utstedes. Slett-kommandoen bruker rulleplass og vi kan bare enten bruke "Commit" eller "Rollback" for å godta eller avbryte endringene.

4. Triggers Truncate er en DDL-kommando, utløsere er ikke tillatt. Slett er en DML-kommando, utløsere er tillatt her.

5. Som er raskere? Det kan fjerne alle dataene, og det er ikke nødvendig å sjekke om noen matchende forhold. Også de opprinnelige dataene kopieres ikke til tilbakestillingsområdet, og dette sparer mye tid. Disse to faktorene gjør Truncate arbeid raskere enn Slett.

Den bruker tilbaketrekningsområdet, og alltid må de opprinnelige dataene beholdes på den. Dette er en ekstra byrde, og i sin tur tar det mye tid enn Truncate.
6. Kan vi bruke WHERE-setningen? Som Truncate ser aldri etter matchende forhold, og det fjerner bare alle rader, vi kunne ikke bruke en "Where" -klausul her. Men vi kunne alltid spesifisere tilstanden ved hjelp av "hvor" -klausulen i kommandoen Slett.
7. Som har mer plass? Den trunkate skal ikke bruke rullingsplassen og det sparer det minnet. Den trenger en sikkerhetskopiering i form av tilbakestillingsplass og dermed krever det mer minneplass enn avkortet.

Å vite forskjellene mellom noen to enheter utvider kunnskapen om begge deler! Du har landet på en riktig vei, det vil si nettsiden for å forstå forskjellene, spesielt mellom trunkate og delete kommandoer. Håper du er nå klar med forskjellene og fortell oss om vi hadde hjulpet deg med å forstå det. Du kan også hjelpe oss med å peke på hva som er igjen!