Der Befehl UPDATE ändert bestehende Daten in einer Tabelle.
UPDATE tabellenname SET spalte1 = neuer_wert1, spalte2 = neuer_wert2 WHERE bedingung;
Ohne WHERE wird jede Zeile geändert.
UPDATE tabellenname SET spalte1 = neuer_wert1;
Dieser Code würde alle Datensätze der Tabelle mit dem neuen Wert updaten – meistens nicht das, was Sie wollen.
Bevor Sie ein UPDATE ausführen, sollten Sie immer zuerst prüfen, welche Zeilen betroffen wären. Einfach zunächst als SELECT mit derselben WHERE-Bedingung, welche nachher beim UPDATE verwendet würde:
-- 1. Erst prüfen: welche Zeilen sind betroffen? SELECT * FROM favourite_film WHERE film_id = 2; -- 2. Passt das Ergebnis? Dann erst ändern. UPDATE favourite_film SET director = 'C. Nolan' WHERE film_id = 2;
Zeigt Ihnen der SELECT-Dry-Run mehr Zeilen, als Sie erwartet haben, stimmt Ihre WHERE-Bedingung noch nicht. Erst wenn das SELECT-Ergebnis passt, führen Sie dasselbe WHERE mit UPDATE aus.
Zellen updaten und was passiert ohne WHERE.
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 |
SELECT * FROM favourite_film WHERE film_id = 2; 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 |
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 |
Mit einem einzigen SET können Sie beliebig viele Spalten auf einmal ändern – einfach mit Komma getrennt.