TigerJython4Kids | HomeTurtlegrafikRobotikDatenbanken |
DU LERNST HIER... |
wie du in einer Datenbank gezielt nach bestimmten Informationen suchst und nur ausgewählte Informationen anzeigst. Die gezielte Auswahl bestimmter Informationen aus einer riesigen Datensammlung, auch Datenreduktion oder Datenfilterung genannt, ist eine wichtige Datenbankoperation. |
MUSTERBEISPIEL |
from dbtable import * persons = DbTable() persons.restore("schule.db") resultSet = persons.select("name", "vorname", "jahrgang", geschlecht = "w") print(resultSet) Für die in Kapitel 3 verwendete Personentabelle liefert das Programm tatsächlich ein Tupel, in dem die einzelnen Datensätze in Tupels verpackt sind. (('Huber', 'Lia', 2002), ('Meier', 'Nina', 2001)) Am einfachsten kannst du auf die einzelnen Datensätze des ResultSets mit einer for-Schleife for row in resultSet: zugreifen. Da row selbst wieder ein Tupel ist, erhältst du die Werte einzelner Felder mit einem Index: row[0] liefert den Namen, row[1] den Vornamen und row[2] den Jahrgang. Du kannst damit beispielsweise die Mädchen wieder in einer neuen Tabelle girls in der Datenbank speichern. from dbtable import * persons = DbTable() persons.restore("schule.db") resultSet = persons.select("name", "vorname", "jahrgang", geschlecht = "w") print(resultSet) girls = DbTable("name", "vorname", "jahrgang") for row in resultSet: girls.insert(row[0], row[1], row[2]) print(girls) girls.save("schule.db") Mit dem folgenden Programm kannst du jederzeit die gespeicherte Information über die Mädchen zurückholen und anzeigen: from dbtable import * girls = DbTable() girls.restore("schule.db") print(girls) |
MERKE DIR... |
Der select()-Befehl liefert einen ResultSet in einem Tupel, in dem jeder Datensatz wieder in ein Tupel gepackt ist. Auf die einzelnen Felder greifst du mit einem Index zu. Im select-Befehl kann man leider nur Gleichheitsbedingungen angeben. Du kannst aber den ResultSet durchlaufen und dort nach einer Bedingung suchen. Beispielsweise findest du alle Teens (mit Jahrgang später als 2001 und früher als 2005 mit |
from dbtable import * persons = DbTable() persons.restore("schule.db") resultSet = persons.select() for row in resultSet: if row[5] > 2001 and row[5] < 2005: print(row) |
ZUM SELBST LÖSEN |
|