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.