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.