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") 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) 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 |
|
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.