logo

Verschil tussen DELETE en TRUNCATE

VERWIJDEREN is een DML-opdracht (Data Manipulation Language) en wordt gebruikt wanneer we de rij (tuple) specificeren die we uit de tabel of relatie willen verwijderen of verwijderen. Het DELETE-commando kan een WHERE-clausule bevatten. Als de WHERE-clausule wordt gebruikt met de opdracht DELETE, worden alleen die rijen (tuples) verwijderd of verwijderd die aan de voorwaarde voldoen; anders worden standaard alle tupels (rijen) uit de tabel verwijderd. Houd er rekening mee dat DELETE de rijverwijderingen registreert.

Syntaxis:

VERWIJDEREN UIT Tabelnaam



WAAR voorwaarde;

Java sorteert een lijst

AFKORT is een DDL-opdracht (Data Definition Language) en wordt gebruikt om alle rijen of tupels uit een tabel te verwijderen. In tegenstelling tot het DELETE-commando bevat het TRUNCATE-commando geen a WHERE-clausule . Bij de opdracht TRUNCATE wordt het transactielogboek voor elke verwijderde gegevenspagina niet geregistreerd. In tegenstelling tot het DELETE-commando is het TRUNCATE-commando snel. We kunnen de gegevens niet terugdraaien na gebruik van de opdracht TRUNCATE.

Syntaxis:

TRUNCATE TABLE Tabelnaam;

Laten we het begrijpen door een eenvoudig voorbeeld te nemen waarin we één dummytabel maken en vervolgens de verwijderbewerking uitvoeren.

Vraag:

CREATE table Employee ( Emp_id int,  name VARCHAR(20),  country VARCHAR(20),  Salary INT); --insert the data in the Employee Table INSERT INTO Employee (Emp_id, name, country, Salary) values (101, 'Mohit', 'India', 60000),  (103, 'Anish', 'England', 70000),  (104, 'Shubham', 'France', 100000),  (102, 'Danish', 'Sweden', 40000),  (105, 'Vivek', 'Wales', 50000),  (106, 'Rohan', 'Scotland', 30000);  Select * from Employee ;>

Uitvoer

Werknemerstabel

Werknemerstabel

Voorbeeld voor verwijderopdracht:

U moet nu een query maken om de laatste invoer met de waarde 106 voor de Emp_id te verwijderen.

Vraag:

Delete from Employee where Emp_id = 106;>

Uitvoer

uitgang

uitgang

Voorbeeld voor TRUNCATE-opdracht

Om in dit geval alle records van de tafelspelers volledig te verwijderen, gebruikt u de opdracht truncate.

Vraag:

TRUNCATE TABLE Employee;>

Verschillen tussen DELETE en TRUNCATE

Verwijderen Afkappen
Het DELETE-commando wordt gebruikt om gespecificeerde rijen (een of meer) te verwijderen. Terwijl deze opdracht wordt gebruikt om alle rijen uit een tabel te verwijderen.
Het is een DML (taal voor gegevensmanipulatie) commando. Terwijl het een DDL (gegevensdefinitietaal) commando.
Er kan een WHERE-clausule in de DELETE-opdracht voorkomen om de records te filteren. Hoewel er mogelijk geen WHERE-clausule in de TRUNCATE-opdracht voorkomt.
Bij het DELETE-commando wordt een tuple vergrendeld voordat deze wordt verwijderd. Tijdens deze opdracht wordt de gegevenspagina vergrendeld voordat de tabelgegevens worden verwijderd.
De DELETE-instructie verwijdert rijen één voor één en registreert voor elke verwijderde rij een vermelding in het transactielogboek. TRUNCATE TABLE verwijdert de gegevens door de toewijzing van de gegevenspagina's die worden gebruikt om de tabelgegevens op te slaan ongedaan te maken en registreert alleen de pagina-deallocaties in het transactielogboek.
DELETE-opdracht is langzamer dan TRUNCATE-opdracht. Terwijl het TRUNCATE-commando sneller is dan het DELETE-commando.
Om Verwijderen te gebruiken, heeft u DELETE-toestemming voor de tabel nodig. Om Truncate op een tafel te gebruiken hebben we minimaal nodig WIJZIGEN toestemming op tafel.
De identiteit van de minder-kolom behoudt de identiteit na gebruik van de DELETE-instructie op de tabel. Identiteit: de kolom wordt opnieuw ingesteld op de beginwaarde als de tabel een identiteitskolom bevat.
Het verwijderen kan worden gebruikt met geïndexeerde weergaven. Truncate kan niet worden gebruikt met geïndexeerde weergaven.
Dit commando kan ook een actieve trigger zijn. Deze opdracht activeert geen trigger.
DELETE-instructie neemt meer transactieruimte in beslag dan Truncate. De Truncate-instructie neemt minder transactieruimte in beslag dan DELETE.

Verwijderbewerkingen kunnen worden teruggedraaid.

TRUNCATE kan niet worden teruggedraaid omdat dit een impliciete commit veroorzaakt.

Verwijderen laat niet de hele tabel vallen. Het verkrijgt een slot op de tafel en begint met het verwijderen van de rijen.

TRUNCATE laat eerst de tabel vallen en maakt deze vervolgens opnieuw, wat sneller is dan het verwijderen van individuele rijen.

Conclusie

In dit artikel, SQL ontwikkelaars kunnen de rijen op de juiste manier verwijderen door de opdrachten DELETE en TRUNCATE correct te gebruiken. De opdracht TRUNCATE moet met voorzichtigheid worden gebruikt, omdat alle records in de tabel worden verwijderd. Beginners zullen ook profiteren van de uitleg in deze tutorial over het onderscheid tussen de opdrachten Verwijderen en Afkappen.

VERWIJDEREN:

  • U wilt alle Medewerkers die de afgelopen zes maanden niets hebben gekocht uit een tabel verwijderen.
  • U wilt een Medewerker uit een tabel verwijderen.

AFKORT:

  • U wilt de inhoud van de tabel in de oorspronkelijke staat herstellen.
  • U hoeft de gegevens niet te kunnen herstellen; je wilt het gewoon helemaal van de tafel verwijderen.