mutieren

5. DATENSÄTZE MUTIEREN (UPDATE)

 

 

DU LERNST HIER...

 

wie du den Wert bestimmter Felder eines ausgewählten Datensatzes oder mehrerer Datensätze gleichzeitig ändern kannst. Statt wie bei Variablen von einer Zuweisung zu sprechen, sagt man bei Datenbanken, man mutiere die Daten oder man führe einen Update durch.

 

 

MUSTERBEISPIEL

 

Beim Mutieren handelt es sich eigentlich um einen zweistufige Operation, bei der du zuerst festlegen musst, welche Datensätze zu mutieren sind und dann s einem oder mehreren Feldern und neue Werte zuordnest. Dazu werden im Befehl update in einer Parameterklammer die Datensätze ausgewählt, die modifiziert werden sollen und in einer zweiten Parameterklammer die neuen Werte in der Form Feldname = Wert angegeben.

Im Beispiel wechselt Bauer Jan seinen Wohnort nach Zürich.

from dbtable import *

persons = DbTable()
persons.restore("schule.db")
print(persons)
persons.update(name = "Bauer", vorname = "Jan")(wohnort = "Zug")
print(persons)
persons.save("schule.db")
► In Zwischenablage kopieren

Damit die Mutation der Tabelle tatsächlich in der Datenbank übernommen wird, musst du die Tabelle mit save() speichern.

 

 

MERKE DIR...

 

Wie bei select() wählst du mit Gleichheitsbedingungen die Datensätze aus, die du mutieren willst. Dies ist dann sehr gefährlich, wenn mehrere Datensätze die Bedingungen erfüllen, d.h. wenn es in diesem Beispiel mehrere Bauer Paul gibt. In diesem Fall werden alle Datensätze modifiziert, wie man leicht zeigen kann, wenn Meier Nina von Biel nach Aarau umzieht und man dies mit folgendem Programm unternimmt:

from dbtable import *

persons = DbTable()
persons.restore("schule.db")
print(persons)
persons.update(name = "Meier")(wohnort = "Aarau")
print(persons)
► In Zwischenablage kopieren

Nun ist nicht nur Meier Nina, sondern auch Meier Luca nach Aarau umgezogen!

Selbst wenn man mehrere Felder als Auswahlbedingung angibt, ist man nie ganz sicher, ob nur ein bestimmter Datensatz ausgewählt wurde. Dies ist einer der Gründe, warum man üblicherweise ein zusätzliches Feld id einführt, über das man einen Datensatz eindeutig identifizieren kann. Dieses nennt man ein Schlüsselfeld oder kurz einen Schlüssel (key field, key)

 

 

ZUM SELBST LÖSEN

 
1.

Meier Luca zieht von Basel nach St. Gallen um. Führe den Update unter Verwendung des Schlüssels durch.

2.

Alle männlichen Personen ziehen in eine Wohngemeinschaft nach Zürich. Führe die Mutation in einem einzigen update()-Befehl durch.

   
5-1
Fachliche Hinweise:

In den meisten Datenbanken kann man ein Feld besonders als Schlüssel auszeichnen und damit verhindern, dass zwei Datensätzen denselben Schlüsselwert haben. Zudem wir meistens der Schlüsselwert beim Einfügen neuer Datensätze automisch erzeugt.