de:modul:m290_guko:learningunits:lu06:theorie:c_update

Action unknown: linkbutton

LU06c - SQL-DML: Daten ändern (UPDATE)

  • Ich kann mit UPDATE einzelne oder mehrere Spalten eines Datensatzes ändern.
  • Ich kann erklären, was passiert, wenn ich UPDATE ohne WHERE ausführe.
  • Ich kann vor einem UPDATE einen Dry-Run mit SELECT durchführen.

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.


Guido Koch

  • de/modul/m290_guko/learningunits/lu06/theorie/c_update.txt
  • Zuletzt geändert: 2026/09/21 00:10
  • von gkoch