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.