logo

Forskjellen mellom DELETE og TRUNCATE

SLETT er en DML (Data Manipulation Language) kommando og brukes når vi spesifiserer raden (tuppelen) som vi ønsker å fjerne eller slette fra tabellen eller relasjonen. DELETE-kommandoen kan inneholde en WHERE-klausul. Hvis WHERE-klausulen brukes med DELETE-kommandoen, fjerner eller sletter den bare de radene (tuplene) som tilfredsstiller betingelsen; Ellers fjerner den som standard alle tuplene (radene) fra tabellen. Husk at DELETE logger radslettingene.

Syntaks:

SLETT FRA Tabellnavn



WHERE tilstand;

føtter vs fot

TRUNCATE er en DDL-kommando (Data Definition Language) og brukes til å slette alle radene eller tuplene fra en tabell. I motsetning til DELETE-kommandoen, inneholder TRUNCATE-kommandoen ikke en WHERE-klausul . I TRUNCATE-kommandoen blir ikke transaksjonsloggen for hver slettede dataside registrert. I motsetning til DELETE-kommandoen, er TRUNCATE-kommandoen rask. Vi kan ikke rulle tilbake dataene etter å ha brukt TRUNCATE-kommandoen.

Syntaks:

TRUNCATE TABLE Tabellnavn;

La oss forstå det ved å ta et enkelt eksempel der vi vil lage en dummy-tabell og deretter utføre sletteoperasjonen.

Spørsmål:

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 ;>

Produksjon

Ansatt bord

Ansatt bord

Eksempel på slettekommando:

Du må nå opprette en spørring for å fjerne den siste oppføringen med verdien 106 for Emp_id.

Spørsmål:

Delete from Employee where Emp_id = 106;>

Produksjon

produksjon

produksjon

Eksempel på TRUNCATE-kommando

For å fjerne alle poster fra bordspillerne i dette tilfellet, bruk truncate-kommandoen.

Spørsmål:

TRUNCATE TABLE Employee;>

Forskjeller mellom DELETE og TRUNCATE

Slett Kutt av
DELETE-kommandoen brukes til å slette spesifiserte rader (en eller flere). Mens denne kommandoen brukes til å slette alle radene fra en tabell.
Det er en DML (Data Manipulation Language) kommando. Mens det er en DDL (Data Definition Language) kommando.
Det kan være en WHERE-klausul i DELETE-kommandoen for å filtrere postene. Selv om det kanskje ikke er WHERE-klausul i TRUNCATE-kommandoen.
I DELETE-kommandoen låses en tuppel før den fjernes. Mens du er i denne kommandoen, låses datasiden før tabelldataene fjernes.
DELETE-setningen fjerner rader én om gangen og registrerer en oppføring i transaksjonsloggen for hver slettede rad. TRUNCATE TABLE fjerner dataene ved å deallokere datasidene som brukes til å lagre tabelldataene og registrerer bare sidedeallokeringene i transaksjonsloggen.
DELETE-kommandoen er tregere enn TRUNCATE-kommandoen. Mens TRUNCATE-kommandoen er raskere enn DELETE-kommandoen.
For å bruke Slett trenger du SLETT-tillatelse på bordet. For å bruke Truncate på et bord trenger vi minst ENDRE tillatelse på bordet.
Identiteten til de færreste kolonnene beholder identiteten etter bruk av DELETE Statement på bordet. Identitet kolonnen tilbakestilles til startverdien hvis tabellen inneholder en identitetskolonne.
Slettingen kan brukes med indekserte visninger. Truncate kan ikke brukes med indekserte visninger.
Denne kommandoen kan også aktiveres. Denne kommandoen utløser ikke aktiv.
DELETE-setningen opptar flere transaksjonsplasser enn Truncate. Truncate-setningen opptar mindre transaksjonsplasser enn DELETE.

Sletteoperasjoner kan rulles tilbake.

TRUNCATE kan ikke rulles tilbake da det forårsaker en implisitt forpliktelse.

Slett sletter ikke hele tabellen. Den får en lås på bordet og begynner å slette radene.

TRUNCATE slipper først tabellen og gjenoppretter den, noe som er raskere enn å slette individuelle rader.

Konklusjon

I denne artikkelen, SQL utviklere kan fjerne radene på riktig måte ved å bruke kommandoene DELETE og TRUNCATE på riktig måte. TRUNCATE-kommandoen må brukes med forsiktighet fordi den sletter alle tabellens poster. Nybegynnere vil også dra nytte av denne veiledningens forklaring av forskjellene mellom kommandoene Slett og Truncate.

SLETT:

  • Du vil fjerne alle ansatte som ikke har kjøpt noe de siste seks månedene fra et bord.
  • Du vil fjerne en ansatt fra en tabell.

TRUNCATE:

  • Du vil gjenopprette tabellens innhold til den opprinnelige tilstanden.
  • Du trenger ikke å kunne gjenopprette dataene; du vil bare fjerne den helt fra bordet.