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