SQL DELETE-setningen brukes til å fjerne spesifikke rader fra en tabell mens tabellstrukturen holdes intakt. Det er forskjellig fra DROP som sletter hele tabellen.
- Den fjerner rader basert på forhold.
- Beholder tabellskjemabegrensninger og indekser.
- Kan slette en enkelt rad eller alle rader.
Eksempel: Først vil vi skape en demo SQL-database og tabell som vi skal bruke SQL DELETE-kommandoen på.
Spørsmål:
DELETE FROM Employees
WHERE EmployeeID = 5;
Produksjon:
- Denne spørringen sletter raden fra Employee-tabellen der Employee-ID er 5.
- Bare den spesifikke posten fjernes; alle andre rader forblir uendret.
Syntaks:
DELETE FROM table_name
WHERE some_condition;
- Some_condition: En betingelse som brukes til å filtrere radene du vil slette.
- tabellnavn: Navnet på tabellen du vil slette radene fra.
Note: Vi kan slette enkelt eller flere poster ved å bruke WHERE-klausulen; hvis den er utelatt, fjernes alle postene i tabellen.
Eksempler på SQL DELETE-setning
Anta at vi har laget en tabell kalt GFG_Employee i SQL som inneholder personopplysningene til den ansatte inkludert deres id-navn e-post og avdeling etc. som vist nedenfor.
LAG TABELL GFG_Ansatte (
ID INT PRIMÆR NØKKEL
navn VARCHAR (20)
e-post til VARCHAR (25)
avdeling VARCHAR(20)
);
INSERT INTO GFG_Employees (ID navn e-postavdeling) VERDIER
(1 'Jessie' '[email protected]' 'Utvikling')
(2 'Praveen' '[email protected]' 'HR')
(3 'Can' '[email protected]' 'Salg')
(4 'Rithvik' '[email protected]' 'IT')
(5 'Suraj' '[email protected]' 'Kvalitetssikring')
(6 'Om' '[email protected]' 'IT')
(7 'Naruto' '[email protected]' 'Utvikling');
Velg * Fra GFG_Employees
Produksjon:
Eksempel 1: Sletting av enkeltpost
Vi kan bruke DELETE-setningen med en betingelse for å slette en spesifikk rad fra en tabell. De HVOR klausulen sikrer at bare den tiltenkte posten fjernes. Vi kan slette postene kalt Rithvik ved å bruke spørringen nedenfor:
Spørsmål:
DELETE FROM GFG_Employees
WHERE NAME = 'Rithvik';
Produksjon:
Eksempel 2: Sletting av flere poster
For å slette flere poster kan du spesifisere en betingelse som samsvarer med flere rader. La oss slette radene fra tabellen GFG_Employees der avdelingen er «Utvikling». Dette vil slette 2 rader (den første raden og den syvende raden).
Spørsmål:
DELETE FROM GFG_Employees
WHERE department = 'Development';
Produksjon
Eksempel 3: Slett alle poster fra en tabell
Hvis vi trenger å slette alle poster fra tabellen, kan vi utelate WHERE-leddet eller alternativt bruke DELETE-setningen med en stjerne (*) for å angi alle rader.
Spørsmål:
forskjell i python
DELETE FROM GFG_Employees;
Or
DELETE * FROM GFG_Employees;
Produksjon:
Alle postene i tabellen vil bli slettet, det er ingen poster igjen å vise. Tabellen GFG_Employees blir tom.
Tilbakestille SLETT-operasjoner
Siden DELETE-setningen er en DML-operasjon, kan den rulles tilbake når den utføres i en setning. Hvis du ved et uhell sletter poster eller trenger å gjenta prosessen, kan du bruke TILBAKE kommando.
Spørsmål:
START TRANSACTION;
DELETE FROM GFG_Employees WHERE department = 'Development';
-- If needed you can rollback the deletion
ROLLBACK;
Forklaring: ROLLBACK-kommandoen vil angre endringene som er gjort av DELETE-setningen og effektivt gjenopprette postene som ble slettet under transaksjonen.
Lag quiz