====== LU07c – UPDATE: Daten ändern ====== Der Befehl %%UPDATE%% wird verwendet, um bestehende Daten in einer Tabelle zu ändern. Wichtig: Immer mit einer Bedingung (%%WHERE%%) einschränken, damit nicht alle Zeilen verändert werden. ===== UPDATE Statement ===== **Syntax (mit Filter – empfohlen)** UPDATE tabellenname SET spalte1 = neuer_wert1, spalte2 = neuer_wert2 WHERE bedingung; **Syntax (ohne Filter – gefährlich!)** UPDATE tabellenname SET spalte1 = neuer_wert1; **Ausgangstabelle:** ^ film_id ^ title ^ director ^ released_year ^ star1 ^ | 1 | Lost in Translation | Sofia Coppola | 2003 | Scarlett Johansson | | 2 | Inception | Christopher Nolan | 2010 | Leonardo DiCaprio | | 3 | Arrival | Denis Villeneuve | 2016 | Amy Adams | **Beispiel 1: Gezieltes Update (Primärschlüssel)** UPDATE favourite_film SET director = 'C. Nolan' WHERE film_id = 2; ^ 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 | Denis Villeneuve | 2016 | Amy Adams | **Beispiel 2: Mehrere Spalten ändern** UPDATE favourite_film SET title = 'Arrival (Extended Cut)', star1 = 'Amy Adams' WHERE film_id = 3; ^ 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 3: Semantisches Update** UPDATE favourite_film SET star1 = 'TBD' WHERE star1 IS NULL; > **Warnung:** Ohne %%WHERE%% würden **alle Zeilen** der Spalte mit dem //SET//-Befehl geändert.