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.
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 |
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 |
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.
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.
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!