Zeilen ändern mit UPDATE
Daten wachsen nicht nur, sie ändern sich auch: Ein Kunde zieht um, ein Spiel bekommt einen neuen Preis. UPDATE ändert Zeilen, die schon in einer Tabelle stehen. Oskar Klein ist von Berlin nach Hamburg gezogen:
UPDATE kunden
SET stadt = 'Hamburg'
WHERE id = 10;Nach UPDATE kommt die Tabelle. Nach SET kommt die Spalte und, nach dem Gleichheitszeichen, ihr neuer Wert. Und WHERE sagt, welche Zeilen geändert werden, genau wie in einer Abfrage: Die Anweisung ändert jede Zeile, die die Bedingung findet, und keine andere. Das Ergebnis zeigt Geänderte Zeilen: 1, und eine Abfrage zeigt die Änderung:
SELECT name, stadt
FROM kunden
WHERE stadt = 'Hamburg';| name | stadt |
|---|---|
| Emma Becker | Hamburg |
| Olivia Braun | Hamburg |
| Leon Wagner | Hamburg |
| Oskar Klein | Hamburg |
| Greta Hoffmann | Hamburg |
Um mehrere Spalten auf einmal zu ändern, trennst du sie mit Kommas: SET stadt = 'Hamburg', email = 'oskar@klein.dev'. In SET bedeutet das Gleichheitszeichen „speichere diesen Wert“, in WHERE dagegen vergleicht es. So löschst du auch einen Wert: SET stadt = NULL (leere Werte findest du aber, wie du weißt, mit WHERE stadt IS NULL).
Um eine bestimmte Zeile zu ändern, finde sie über ihren Primärschlüssel, wie oben mit WHERE id = 10. Namen können sich wiederholen (zwei Kunden können beide Oskar Klein heißen) und Text muss genau übereinstimmen, aber eine ID bedeutet immer eine Zeile.
Im WHERE eines UPDATE kannst du alles verwenden, was du kennst: AND, OR, IN, LIKE, BETWEEN, Funktionen und sogar Unterabfragen. Ein UPDATE kann eine Zeile ändern, viele oder keine: Wenn die Bedingung nichts findet, ist das kein Fehler, die Anweisung ändert einfach nichts (Geänderte Zeilen: 0).
Typischer Fehler: ein WHERE, das nichts findet, zum Beispiel wegen eines Tippfehlers: WHERE name = 'Oskar Kein'. Du bekommst keinen Fehler, und das Ergebnis deiner Abfrage sieht so aus, als wäre nichts passiert. Wenn die Änderung nicht da ist, schau auf „Geänderte Zeilen“: Steht dort 0, hat das WHERE keine Zeile gefunden.
So schreibst du es:
Anweisungen
- 1
Mia Lange (ID 7) ist von Berlin nach Leipzig gezogen und hat eine neue E-Mail-Adresse:
mia@lange.de. Ändere beides mit einemUPDATE. - 2
Zeige darunter die ID, den Namen, die E-Mail-Adresse und die Stadt der Kunden aus Leipzig, sortiert nach der ID:
id name email stadt 2 Lukas Neumann lukas.neumann@mail.de Leipzig 6 Jonas Hartmann jonas@hartmann.io Leipzig 7 Mia Lange mia@lange.de Leipzig 13 Sophie Arnold sophie.arnold@mail.de Leipzig - 3
Robot Rebellion (ID 18) hat endlich ein Erscheinungsdatum: Es erscheint am 20.03.2026. Setze es mit einem weiteren
UPDATEund zeige danach den Titel und das Erscheinungsdatum der Spiele, die am 01.06.2025 oder später erschienen sind, sortiert nach dem Erscheinungsdatum:titel erschienen Turbo Karts 2025-06-05 Goal Rush 2025-09-26 Knight's Oath 2025-11-14 Robot Rebellion 2026-03-20