logo

Forskellen mellem DELETE og TRUNCATE

SLET er en DML(Data Manipulation Language)-kommando og bruges, når vi angiver den række (tuple), som vi ønsker at fjerne eller slette fra tabellen eller relationen. Kommandoen DELETE kan indeholde en WHERE-sætning. Hvis WHERE-sætningen bruges sammen med kommandoen DELETE, så fjerner eller sletter den kun de rækker (tupler), der opfylder betingelsen; ellers fjerner den som standard alle tupler (rækker) fra tabellen. Husk at DELETE logger rækkesletningerne.

Syntaks:

SLET FRA Tabelnavn



WHERE tilstand;

algoritmedybde første søgning

TRUNCATE er en DDL-kommando (Data Definition Language) og bruges til at slette alle rækker eller tupler fra en tabel. I modsætning til kommandoen DELETE indeholder TRUNCATE-kommandoen ikke en WHERE-klausul . I TRUNCATE-kommandoen registreres transaktionsloggen for hver slettede dataside ikke. I modsætning til DELETE-kommandoen er TRUNCATE-kommandoen hurtig. Vi kan ikke rulle data tilbage efter brug af TRUNCATE-kommandoen.

Syntaks:

TRUNCATE TABLE Tabelnavn;

Lad os forstå det ved at tage et enkelt eksempel, hvor vi opretter en dummy-tabel og derefter udfører sletteoperationen.

Forespørgsel:

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

Produktion

Medarbejder tabel

Medarbejder tabel

Eksempel på sletkommando:

Du skal nu oprette en forespørgsel for at fjerne den sidste post med værdien 106 for Emp_id.

Forespørgsel:

Delete from Employee where Emp_id = 106;>

Produktion

produktion

produktion

Eksempel på TRUNCATE-kommando

For fuldstændigt at fjerne alle poster fra bordspillerne i dette tilfælde skal du bruge truncate-kommandoen.

Forespørgsel:

TRUNCATE TABLE Employee;>

Forskelle mellem DELETE og TRUNCATE

Slet Afkorte
Kommandoen DELETE bruges til at slette specificerede rækker (en eller flere). Mens denne kommando bruges til at slette alle rækker fra en tabel.
Det er en DML (Data Manipulation Language) kommando. Mens det er en DDL (Data Definition Language) kommando.
Der kan være et WHERE-udtryk i DELETE-kommandoen for at filtrere posterne. Selvom der muligvis ikke er WHERE-sætning i TRUNCATE-kommandoen.
I kommandoen DELETE låses en tupel, før den fjernes. Mens du er i denne kommando, låses datasiden, før tabeldataene fjernes.
DELETE-sætningen fjerner rækker én ad gangen og registrerer en post i transaktionsloggen for hver slettede række. TRUNCATE TABLE fjerner dataene ved at deallokere datasiderne, der bruges til at gemme tabeldataene, og registrerer kun sidedeallokeringerne i transaktionsloggen.
DELETE-kommandoen er langsommere end TRUNCATE-kommandoen. Mens TRUNCATE-kommandoen er hurtigere end DELETE-kommandoen.
For at bruge Slet skal du have DELETE-tilladelse på bordet. For at bruge Truncate på et bord har vi som minimum brug for ÆNDRE tilladelse på bordet.
Identiteten af ​​den færre kolonne bevarer identiteten efter brug af DELETE Statement på bordet. Identitet kolonnen nulstilles til sin startværdi, hvis tabellen indeholder en identitetskolonne.
Sletningen kan bruges med indekserede visninger. Truncate kan ikke bruges med indekserede visninger.
Denne kommando kan også aktiveres. Denne kommando aktiverer ikke aktiv trigger.
DELETE-sætning optager flere transaktionspladser end Truncate. Truncate-erklæring optager færre transaktionspladser end DELETE.

Sletningshandlinger kan rulles tilbage.

TRUNCATE kan ikke rulles tilbage, da det forårsager en implicit commit.

Slet taber ikke hele tabellen. Den får en lås på bordet og begynder at slette rækkerne.

TRUNCATE dropper først tabellen og genopretter den derefter, hvilket er hurtigere end at slette individuelle rækker.

Konklusion

I denne artikel, SQL udviklere kan fjerne rækkerne korrekt ved at bruge kommandoerne DELETE og TRUNCATE korrekt. TRUNCATE-kommandoen skal bruges med forsigtighed, fordi den sletter alle tabellens poster. Begyndere vil også drage fordel af denne tutorials forklaring af forskellene mellem kommandoerne Delete og Truncate.

SLET:

  • Du vil fjerne alle medarbejdere, der ikke har købt noget i de sidste seks måneder fra et bord.
  • Du vil fjerne en medarbejder fra en tabel.

TRUNCATE:

  • Du vil gendanne tabellens indhold til deres oprindelige tilstand.
  • Du behøver ikke at kunne gendanne dataene; du vil bare fjerne det helt fra bordet.