Python Tutorial
- jetzt Python programmieren lernen

Datensätze ändern/ergänzen: UPDATE

Falls in einem Datensatz eine Änderung ansteht oder einzelne Angaben eines Datensatzes ergänzt werden müssen gibt es die SQL-Anweisung UPDATE.

Wir wollen unseren Datensatz von Herrn Schiller korrigieren. Schiller ist zwar primär mit dem Vornamen Friedrich bekannt, aber seine kompletten Vornamen lauten: „Johann Christoph Friedrich“

Also wollen wir unseren Datensatz aktualisieren. Schauen wir uns dazu erst die komplette SQL-Anweisung an:

UPDATE personen SET vorname='Johann Christoph Friedrich' WHERE nachname='Schiller'

Die Anweisung UPDATE ist logisch: Aktualisiere (update) in der Tabelle „personen“ folgende angegebene Daten. Bei den angegebenen Daten müssen wir nur die zu änderten Daten und das entsprechende Feld über die SQL-Anweisung SET angeben.

Nicht alles Datensätze ändern: Datensatz auswählen

Wir grenzen unsere Datensätze über die zusätzliche SQL-Anweisung WHERE ein. Hier können wir festlegen, dass unsere Aktion nur für die Datensätze mit der in der WHERE-Bedingung formulierten Einschränkung durchgeführt wird.

In unserem Fall wollen wir unseren Herrn Schiller auswählen, also WHERE nachname='Schiller'“. Auf das Problem, dass es mehr als einen „Schiller“ in unserer Tabelle gibt, kommen wir später noch zu sprechen.

Bauen wir unsere SQL-Anweisung um, damit wir wie gewohnt mit Variablen arbeiten können und geschützt vor SQL-Injektionen sind.

nachname   = "Schiller"
vorname    = "Johann Christoph Friedrich"

zeiger.execute("UPDATE personen SET vorname=? WHERE nachname=?", (vorname, nachname))
verbindung.commit()

Noch einmal, da es so wichtig ist! Hier ist die korrekte formulierte Bedingung in der SQL-Anweisung mit WHERE extrem wichtig. Ansonsten bekommen ALLE Datensätze den neuen Vornamen. Und das würde Goethe definitiv nicht gefallen.

Nach Ausführung der Anweisung haben wir als Ergebnis:

[('Johann Christoph Friedrich', 'Schiller', '10.11.1759')]

[('Johann Christoph Friedrich', 'Schiller', '10.11.1759'), ('Johann Wolfgang von', 'Goethe', '28.8.1749'), ('Johann Wolfgang von', 'Goethe', '28.8.1749')]

Und einfach weil es so schön ist, einmal diesen fatalen Fehler zu machen, lassen wir die WHERE-Anweisung weg:

zeiger.execute("UPDATE personen SET vorname=? ", (vorname, ))
verbindung.commit()

Anmerkung: das Komma nach (vorname, ) ist wichtig. Dazu später mehr.

Einfach einmal probieren, was dabei rauskommt!

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Sie können uns auch eine Spende über PayPal zukommen lassen.

Bestellen Sie Bücher über folgenden Link bei Amazon:
Bücher über Python

Vielen Dank für Ihre Unterstützung