Verschil tussen Truncate en Delete

Dataproductie en -manipulatie vormen de basis van databases en we noemen het respectievelijk DDL en DML. Een DDL is een afkorting voor de Data Definition Language. Het kan de datastructuren in de databases maken of wijzigen en ze kunnen niet worden gebruikt om de gegevens in de tabellen te wijzigen. We hebben bijvoorbeeld opdrachten die alleen een tabel maken met de opgegeven tabelattributen, maar voegt nooit rijen toe aan de tabel. Maar een DML, de taal voor gegevensmanipulatie, is in staat om gegevens in de tabellen toe te voegen, te verwijderen of aan te passen. Als algemene regel geldt dat de DDL-opdrachten betrekking hebben op de tabelstructuren, terwijl de DML-opdrachten betrekking hebben op de feitelijke gegevens. Laat het zo zijn, waarom wijken we gewoon af van het onderwerp "Verschil tussen Trunceren en Verwijderen"? Er zijn redenen dat we het hadden over de DML en de DDL. Je zou het in de komende discussie begrijpen.

Wat is een Truncate-opdracht?

Het doel van een Truncate-opdracht is om de hele tabel te verwijderen. Dus als je een Truncate-opdracht gebruikt, verlies je alle gegevens op de tafel en moet je voorzichtig zijn met het gebruik ervan. Laat ons weten hoe het te gebruiken.

De syntaxis van Truncate:

        AFHANDELINGSTAFEL tafel naam;

Hier moet u de naam van de tabel opgeven die in zijn geheel moet worden verwijderd. Dit zorgt ervoor dat er een tafel in de geheugenruimte zou zitten. Hier is een voorbeeld van het gebruik van Truncate.

Hieronder ziet u de tabel 'Werknemer' en kijkt u naar de rijen met gegevens daarin.

emp-id emp-naam aanwijzing
1011 vijzel klerk
1012 Rooskleurig beheerder
1014 Nancy Financiën

Laten we nu het onderstaande commando op de medewerkerstafel geven.

        AFHANDELINGSTAFEL werknemer;

Dit is het resultaat van de bovenstaande syntaxis en er zijn geen gegevens in.

emp-id emp-naam aanwijzing

Wat is een verwijdercommando?

Het doel van een verwijderopdracht is om de opgegeven rijen uit de tabel te verwijderen. Hier wordt de clausule 'Waar' gebruikt om de rijen op te geven die moeten worden verwijderd. Wanneer we de rijen niet opgeven, verwijdert de opdracht alle rijen in de tabel. Kijk maar naar de syntaxis ervan.

        VERWIJDEREN VAN werknemer;

De bovenstaande syntaxis verwijdert alle rijen uit de tabel 'werknemer'. Dus de resulterende tabel zou geen gegevens bevatten.

VERWIJDEREN VAN werknemer WAAR emp-id = 1011;

Deze instructie verwijdert gewoon een enkele rij waarvan de emp-id 1011 is. Dus de resulterende tabel zou zijn zoals hieronder.

emp-id emp-naam aanwijzing
1012 Rooskleurig beheerder
1014 Nancy Financiën

verschillen:

  • Truncate is een DDL; Verwijderen is een DML: We hebben hierboven besproken hoe de DDL en de DML werken in onze bovenstaande discussie. De opdracht Truncate is een DDL en deze werkt op het niveau van de gegevensstructuur. Maar Verwijderen is een DML-opdracht en deze werkt op de tabelgegevens. Andere voorbeelden voor DDL zijn CREATE en ALTER. Op een vergelijkbare manier zouden we kunnen zeggen dat de commando's zoals SELECT, UPDATE en INSERT perfecte voorbeelden zijn voor een DML.
  • Hoe werkt de Truncate en Delete werkt: Zodra we de opdracht Truncate uitvoeren, wordt alleen naar de opgegeven tabel gezocht. Vervolgens worden alle gegevens uit het geheugen volledig verwijderd. Maar de werkprocedure is weinig anders in het geval van een verwijdering. Hier worden de oorspronkelijke tabelgegevens naar de ruimte gekopieerd, de 'Roll-back'-spatie voordat de feitelijke gegevensmanipulatie wordt uitgevoerd. Vervolgens worden de wijzigingen aangebracht in de werkelijke tabelgegevensruimte. Beide verschillen dus in de manier waarop ze werken.

afknotten -> verwijder volledige gegevens van de tabel -> De tabelruimte is nu vrijgegeven.

Verwijder -> Kopieer de originele tabelgegevens naar Roll-back-ruimte -> verwijder de opgegeven gegevens / gehele tabel -> Tabelruimte is vrijgemaakt, maar rolrugruimte is gevuld.

  • Terugrollen: Een roll-back is als een Undo-opdracht in onze Microsoft-accessoires. Het wordt gebruikt om de wijzigingen ongedaan te maken die we onlangs hebben uitgevoerd, d.w.z. vanaf het laatst opgeslagen punt. Om de bewerking uit te voeren, moeten de gegevens worden gekopieerd naar de Roll-back-ruimte voordat deze wordt bewerkt. Hoewel deze Roll-backs het extra geheugen vereisen, zijn ze bijzonder handig om terug te gaan naar het origineel. Vooral als je per ongeluk iets redigeert! Laten we nu naar de Truncate en Delete komen met betrekking tot de Roll nu. Zoals we hierboven hebben besproken, gebruikt de Truncate nooit een roll-backruimte en konden we niet terugkeren naar de oorspronkelijke gegevens. Maar de opdracht Verwijderen gebruikt roll-back-ruimte en we kunnen ofwel 'Commit' of 'RollBack' gebruiken om de wijzigingen respectievelijk te accepteren of te annuleren.
  • triggers: Voor degenen die een uitleg over triggers nodig hebben, is hier een kleine opmerking. Triggers zijn een vooraf gespecificeerde reeks bewerkingen / bewerkingen die moeten worden geactiveerd wanneer de tabel een bepaalde voorwaarde tegenkomt. We kunnen bijvoorbeeld het salarisbedrag wijzigen wanneer de ervaring van een werknemer met het bedrijf meer dan een jaar is. Deze triggers kunnen ook op andere tabellen werken. We kunnen bijvoorbeeld de financiële tabel bijwerken zodra een salarisverhoging voor een medewerker is gedaan.

Truncate is een DDL-opdracht, de trigger is hier niet toegestaan. Maar een Delete is een DML-opdracht, Triggers zijn hier toegestaan.

  • Welke is sneller? Zoals u vermoedde, zou de opdracht Truncate sneller zijn dan de opdracht Delete. De eerstgenoemde kan alle gegevens verwijderen en het is niet nodig om te controleren op eventuele overeenkomende voorwaarden. De oorspronkelijke gegevens worden ook niet gekopieerd naar de terugdraaizone en dit bespaart veel tijd. Deze twee factoren zorgen ervoor dat Truncate sneller werkt dan de Delete.
  • Kunnen we de WHERE-component gebruiken?? De 'Where' -clausule wordt gebruikt om bepaalde afstemmingsvoorwaarden op te geven en is niets met de Truncate. Aangezien Truncate nooit naar overeenkomende voorwaarden zoekt en alleen alle rijen verwijdert, kunnen we hier geen 'Waar'-clausule gebruiken. Maar we kunnen altijd de voorwaarde opgeven met behulp van de 'where'-clausule in de opdracht Verwijderen.
  • Dat neemt meer ruimte in beslag? De truncate gebruikt de rollback-ruimte niet en bewaart dat geheugen. Maar delete heeft een back-up nodig in de vorm van Rollback-ruimte en daarom heeft het meer geheugenruimte nodig dan de truncate.

Dus dat zijn de verschillen en laten we het in een tabel bekijken.

S.No Verschillen in afknotten Verwijder
1. DDL of DML? Het is een DDL en het werkt op het niveau van de gegevensstructuur. Andere voorbeelden voor DDL zijn CREATE en ALTER. Het is een DML-opdracht en deze werkt op de tabelgegevens. De DML staat voor Data Manipulation Language. De opdrachten zoals SELECT, UPDATE en INSERT zijn perfecte voorbeelden voor een DML. De DML staat voor Data Manipulation Language.

2. Hoe werkt het? Zodra we de opdracht Truncate uitvoeren, wordt alleen naar de opgegeven tabel gezocht. Vervolgens worden alle gegevens uit het geheugen volledig verwijderd. Hier worden de oorspronkelijke tabelgegevens naar de ruimte gekopieerd, de 'Roll-back'-spatie voordat de feitelijke gegevensmanipulatie wordt uitgevoerd. Vervolgens worden de wijzigingen aangebracht in de werkelijke tabelgegevensruimte.
3. Terugrollen De opdracht Truncate maakt nooit gebruik van een terugrollende spatie en we konden niet terugkeren naar de oorspronkelijke gegevens. Een terugdraaiplaats is een exclusieve ruimte en is bezet wanneer de DML-opdrachten worden uitgegeven. De opdracht Verwijderen gebruikt roll-back-ruimte en we kunnen ofwel 'Commit' of 'RollBack' gebruiken om de wijzigingen respectievelijk te accepteren of te annuleren.

4. triggers Truncate is een DDL-opdracht, triggers zijn niet toegestaan. Verwijderen is een DML-opdracht. Triggers zijn hier toegestaan.

5. Welke is sneller? Het kan alle gegevens verwijderen en het is niet nodig om te controleren op eventuele overeenkomende voorwaarden. De oorspronkelijke gegevens worden ook niet gekopieerd naar de terugdraaizone en dit bespaart veel tijd. Deze twee factoren zorgen ervoor dat Truncate sneller werkt dan de Delete.

Het gebruikt de rollback-ruimte en altijd moeten de originele gegevens erop worden bewaard. Dit is een extra last en kost op zijn beurt veel meer tijd dan de Truncate.
6. Kunnen we de WHERE-component gebruiken?? Aangezien Truncate nooit naar overeenkomende voorwaarden zoekt en alleen alle rijen verwijdert, kunnen we hier geen 'Waar'-clausule gebruiken. Maar we kunnen altijd de voorwaarde opgeven met behulp van de 'where'-clausule in de opdracht Verwijderen.
7. Dat neemt meer ruimte in beslag? De truncate gebruikt de rollback-ruimte niet en bewaart dat geheugen. Het heeft een back-up nodig in de vorm van Rollback-ruimte en daarom heeft het meer geheugenruimte nodig dan de truncate.

Het kennen van de verschillen tussen twee entiteiten verbreedt de kennis over beide! U bent op een recht pad beland, d.w.z. de webpagina om de verschillen te begrijpen, vooral tussen de truncate en delete-opdrachten. Ik hoop dat je nu duidelijk bent met de verschillen en laat het ons weten als we je hadden geholpen het te begrijpen. U kunt ons ook helpen te wijzen op wat er nog is overgebleven!