Skillnad mellan truncate och delete

Dataskapande och manipulering utgör databasen och vi kallar det för respektive DDL respektive DML. En DDL är en förkortning för Data Definition Language. Det kan antingen skapa eller ändra datastrukturerna i databaserna och de kunde inte användas för att ändra data som finns på tabellerna. Vi har till exempel kommandon som bara skapar ett bord med angivna tabellattribut, men det lägger aldrig några rader i tabellen. Men en DML, Data Manipulation Language, kan lägga till, radera eller ändra data i tabellerna. Som regel gäller DDL-kommandonerna med bordstrukturerna medan DML-kommandona handlar om de faktiska data. Låt det vara, varför avviker vi bara från ämnet "Skillnad mellan truncate och delete"? Det finns skäl att vi talade om DML och DDL. Du skulle förstå det i den föregående kommande diskussionen.

Vad är ett truncate-kommando?

Syftet med ett truncate-kommando är att radera hela tabellen. Så när du använder ett truncate-kommando kommer du att förlora all data på bordet och du bör vara försiktig med att använda den. Låt oss veta hur man använder den.

Synkroniseringen av truncate:

        TRUNCATE TABLE tabellnamn;

Här ska du ange namnet på tabellen som ska raderas på det hela taget. Detta säkerställer att det finns någon tabell som sitter i minnesutrymmet. Här är ett exempel på att använda Truncate.

Nedan är "anställd" -tabellen och titta bara på raderna av data i den.

emp-id emp-namn beteckning
1011 jack Kontorist
1012 Rosig Administration
1014 Nancy Finansiera

Nu, låt oss utfärda kommandot nedan på anställd tabellen.

        TRUNCATE TABLE anställd;

Här är resultatet av ovanstående syntax och det finns inga data i den.

emp-id emp-namn beteckning

Vad är en Delete Command?

Syftet med ett Delete-kommando är att ta bort de angivna raderna från tabellen. Här används "Where" -klausul här för att ange raderna som måste raderas. När vi inte anger raderna skulle kommandot radera alla rader i tabellen. Titta bara på syntaxen av den.

        DELETE FROM anställd;

Ovanstående syntax tar bort alla rader från "anställd" -tabellen. Så det resulterande tabellen innehåller inga data.

DELETE FROM anställd VAR emp-id = 1011;

Detta uttalande tar bort en enda rad vars emp-id är 1011. Således kommer det resulterande tabellen att vara som nedan.

emp-id emp-namn beteckning
1012 Rosig Administration
1014 Nancy Finansiera

skillnader:

  • Truncate är en DDL; Radera är en DML: Vi har diskuterat ovan hur DDL och DML fungerar i vår ovanstående diskussion. Kommandot Truncate är en DDL och det fungerar på datastrukturnivå. Men Delete är ett DML-kommando och det fungerar på tabeldata. Andra exempel på DDL är CREATE och ALTER. På liknande sätt kan vi säga kommandona som SELECT, UPDATE och INSERT är perfekta exempel på en DML.
  • Hur fungerar truncate och delete: Så snart vi utfärdar kommandot Truncate söker det bara efter den angivna tabellen. Sedan tar det helt bort alla data från minnet. Men arbetsförfarandet är lite annorlunda i fallet med en radering. Här kopieras de ursprungliga tabelldata till utrymme som kallas "Rulla tillbaka" -utrymmet innan du gör den faktiska datapanuleringen. Därefter görs ändringarna på det faktiska tabellen datautrymme. Så, båda skiljer sig åt hur de fungerar.

Stympa -> ta bort hela data från bordet -> Tabellutrymme befrias nu.

Radera -> Kopiera de ursprungliga tabelldata till Rollback space -> radera angivna data / hela tabellen -> Tabellutrymmet är befriat, men Rollback space är fyllt.

  • Rulla tillbaka: En rulle tillbaka är som ett Ångra-kommando i våra Microsoft-tillbehör. Det används för att avbryta ändringarna som vi har gjort nyligen, dvs från den sista sparade punkten. För att utföra operationen ska data kopieras till Rollback-rummet innan det redigeras. Även om dessa rullbackar kräver extra minne, är de extremt användbara för att komma tillbaka till originalet. Särskilt när du redigerar av misstag! Låt oss komma till Truncate och Delete med avseende på Roll back nu. Som vi diskuterade ovan använder Truncate aldrig ett ryggutrymme och vi kunde inte återgå till originaldata. Men Delete-kommandot använder rulla utrymme och vi kan bara antingen använda "Commit" eller "Rollback" för att acceptera eller avbryta ändringarna.
  • triggers: För dem som behöver en förklaring om triggers, här är en liten anteckning. Utlösare är en förutbestämd uppsättning operationer / operationer som ska aktiveras när bordet möter ett visst tillstånd. Till exempel kan vi utlösa lönebeloppet när en medarbetares erfarenhet med företaget är mer än ett år. Dessa triggers kan också fungera på andra tabeller. Till exempel kan vi uppdatera finansieringstabellen så snart en löneökning har gjorts för en anställd.

Truncate är ett DDL-kommando, utlösaren är inte tillåten här. Men en Delete är ett DML-kommando, utlösare är tillåtna här.

  • Vilket är snabbare? Som du gissade skulle kommandot Truncate vara snabbare än kommandot Ta bort. Den förstnämnda kunde ta bort alla data och det är inte nödvändigt att kontrollera om matchande förhållanden är uppfyllda. De ursprungliga data kopieras inte heller till återställningsutrymmet och det sparar mycket tid. Dessa två faktorer gör Truncate-arbetet snabbare än Delete.
  • Kan vi använda WHERE-klausulen? "Where" -klausulen används för att specificera vissa matchningsförhållanden och är inget med Truncate. Eftersom Truncate aldrig letar efter matchande förhållanden och det bara tar bort alla rader, kunde vi inte använda en "Where" -klausul här. Men vi kunde alltid ange villkoret med hjälp av "var" -klausulen i kommandot Ta bort.
  • Som upptar mer utrymme? Trunkatet kommer inte att använda rullningsutrymmet och det sparar det minnet. Men radera behöver en säkerhetskopia i form av Återskapningsutrymme och det kräver därför mer minnesutrymme än avkortningen.

Så det är skillnaderna och låt oss titta på i tabellform.

S.No Skillnader i Stympa Radera
1. DDL eller DML? Det är en DDL och det fungerar på datastrukturnivå. Andra exempel på DDL är CREATE och ALTER. Det är ett DML-kommando och det fungerar på bordsdata. DML står för Data Manipulation Language. Kommandona som SELECT, UPDATE och INSERT är perfekta exempel på en DML. DML står för Data Manipulation Language.

2. Hur fungerar det? Så snart vi utfärdar kommandot Truncate söker det bara efter den angivna tabellen. Sedan tar det helt bort alla data från minnet. Här kopieras de ursprungliga tabelldata till utrymme som kallas "Rulla tillbaka" -utrymmet innan du gör den faktiska datapanuleringen. Därefter görs ändringarna på det faktiska tabellen datautrymme.
3. Rulla tillbaka Kommandot Truncate använder aldrig ett rulleutrymme och vi kunde inte återgå till originaldata. Ett återskapningsutrymme är en exklusiv och är upptagen när DML-kommandon utfärdas. Kommandot Ta bort använder rulla utrymme och vi kan bara antingen använda "Commit" eller "Rollback" för att acceptera eller avbryta ändringarna.

4. triggers Truncate är ett DDL-kommando, utlösare är inte tillåtna. Radera är ett DML-kommando, utlösare är tillåtna här.

5. Vilket är snabbare? Det kan ta bort alla data och det finns ingen anledning att kolla efter matchande förhållanden. De ursprungliga data kopieras inte heller till återställningsutrymmet och det sparar mycket tid. Dessa två faktorer gör Truncate-arbetet snabbare än Delete.

Den använder rullningsutrymmet och alltid måste de ursprungliga uppgifterna behållas på den. Detta är en extra börda och tar i sin tur mycket tid än trunkaten.
6. Kan vi använda WHERE-klausulen? Eftersom Truncate aldrig letar efter matchande villkor och det bara tar bort alla rader, kunde vi inte använda en "Where" -klausul här. Men vi kunde alltid ange villkoret med hjälp av "var" -klausulen i kommandot Ta bort.
7. Som upptar mer utrymme? Trunkatet kommer inte att använda rullningsutrymmet och det sparar det minnet. Det behöver en säkerhetskopia i form av Återskapningsutrymme och det kräver därför mer minnesutrymme än avkortningen.

Att veta skillnaderna mellan två enheter ökar kunskapen på båda! Du har landat på en rätt väg, dvs webbsidan för att förstå skillnaderna, särskilt mellan trunkat och raderingskommandon. Hoppas du är nu klar med sina skillnader och låt oss veta om vi hade hjälpt dig att förstå det. Du kan också hjälpa oss att peka på vilken som har lämnats!