====== LU07d – DELETE: Daten löschen ======
Mit %%DELETE%% werden Datensätze gelöscht.
Mit %%TRUNCATE%% kann die **gesamte Tabelle** geleert werden.
===== DELETE Statement =====
**Syntax (mit Filter – empfohlen)**
DELETE FROM tabellenname
WHERE bedingung;
**Syntax (ohne Filter – gefährlich!)**
DELETE FROM tabellenname;
**Ausgangstabelle:**
^ film_id ^ title ^ director ^ released_year ^ star1 ^
| 1 | Lost in Translation | Sofia Coppola | 2003 | Scarlett Johansson|
| 2 | Inception | C. Nolan | 2010 | Leonardo DiCaprio |
| 3 | Arrival (Extended Cut) | Denis Villeneuve | 2016 | Amy Adams |
**Beispiel 1: Gezieltes Löschen**
DELETE FROM favourite_film
WHERE film_id = 1;
^ film_id ^ title ^ director ^ released_year ^ star1 ^
| 2 | Inception | C. Nolan | 2010 | Leonardo DiCaprio |
| 3 | Arrival (Extended Cut) | Denis Villeneuve | 2016 | Amy Adams |
**Beispiel 2: Mehrere auf einmal löschen**
DELETE FROM favourite_film
WHERE film_id IN (2, 3);
^ film_id ^ title ^ director ^ released_year ^ star1 ^
| (keine Zeilen mehr vorhanden) |||||
===== TRUNCATE =====
%%TRUNCATE%% entfernt **alle Zeilen** einer Tabelle – schneller als DELETE.
Es setzt zusätzlich den AUTO_INCREMENT-Zähler zurück.
**Syntax**
TRUNCATE TABLE tabellenname;
> **Merke:**
> • Keine %%WHERE%% möglich.
> • Nur verwenden, wenn man wirklich **alles löschen** will.