====== 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.