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.
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 |
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 |
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.
Truncate is een DDL-opdracht, de trigger is hier niet toegestaan. Maar een Delete is een DML-opdracht, Triggers zijn hier toegestaan.
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!