Python Online
Home     .
tabellen

2. TABELLEN ERSTELLEN

 

 

DU LERNST HIER...

 

wie man Informationen in einer Datenbank dauerhaft abspeichern kann und wie man später wieder darauf zurückgreift. Dazu erstellst du eine Tabelle mit Personendaten, fügst Datensätze hinzu und speicherst die Tabelle in einer Datenbank.

 

 

MUSTERBEISPIEL

 

Du möchtest die Personendaten deiner Klassenkameraden in einer Datenbank abspeichern. Dabei verwendest du Namen, Vornamen, Wohnort, Geschlecht und Jahrgang. Als erstes erstellst du eine Tabelleninstanz persons von DbTable, wo du die Feldnamen festlegst. Gewöhnlich wird ein vielsagender Feldname gewählt, der allerdings meist klein geschrieben wird und sich an die Regeln für Variablenamen halten muss, also keine Umlaute und Spezialzeichen enthalten darf. In Personentabellen ist es üblich, ein zusätzliches Feld id mit ganzen Zahlen 1, 2, 3. ... aufzunehmen, damit die Personen über diese Zahl eindeutig identifiziert werden können.

Mit dem Befehl insert() fügst du einzelne Personen in die Tabelle, wobei die Reihenfolge der Parameter derjenigen der Felder entsprechen muss. Du kannst natürlich auch andere Personen einfügen, z.B. dich selbst in die Tabelle aufnehmen. Nach dem Einfügen schreibst du die Tabelle zur Kontrolle im Ausgabefenster aus. Dazu verwendest du den Befehl printTable().

Am Schluss speicherst du die Tabelleninformationen in einer Datenbank mit dem Namen schule.db. Diese wird in der Regel im Download-Verzeichnis auf deinem Computer gespeichert. Du kannst die Datei schule.db anschliessend in ein beliebiges Verzeichnis kopieren.

Programm:

from dbtable import *

persons = DbTable('persons', 
['id', 'name', 'vorname', 'wohnort', 'geschlecht', 'jahrgang']) 
persons.insert(1, 'Huber', 'Lia', 'Bern', 'w', 2002)
persons.insert(2, 'Meier', 'Luca', 'Basel', 'm', 2003)
persons.insert(3, 'Frech', 'Tim', 'Bern', 'm', 2000)
persons.insert(4, 'Bauer', 'Jan', 'Luzern', 'm', 2003)
persons.insert(5, 'Zwahlen', 'Noah', 'Thun', 'm', 2002)
persons.insert(6, 'Meier', 'Nina', 'Biel', 'w', 2001) 
persons.printTable()
DbTable.save('schule.db')   
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

Ergebnis:

Wesentliches Merkmal von Datenbanken ist, dass die Daten nach Ende des Programms dauerhaft abgespeichert sind  Du kannst also den Computer abschalten und später wieder auf deine Personendatenbank schule.db zugreifen. Du kannst diese Datei sogar auf den Computer eines Klassenkameraden kopieren und er kann die Daten dort verwenden.

Als erstes musst du festlegen, welche Datenbank du zurückholen willst. Klicke auf die Schaltfläche Datenbank im Editorfenster und wähle die Datenbankdatei (hier schule.db).  

Programm:

from dbtable import *

DbTable.restore()
persons = DbTable("persons") 
persons.printTable()
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

Zuerst holst du mit dem Befehl restore() die Datenbank mit allen ihren Tabellen zurück und erzeugst im nächsten Schritt die DbTable persons, die du nachfolgend im Ausgabefenster anzeigst.


 

MERKE DIR...

 

Beim Erzeugen einer Tabelle müssen die Feldnamen festgelegt werden. In den Feldern können nur ganze Zahlen (int), Dezimalzahlen (float) und Zeichenketten (str) verwendet werden. Mit save() speicherst du die Tabellendaten in der angegebenen Datenbank ab, mit restore() kannst du Daten jederzeit später mit einem anderen Programm wieder herstellen.

Natürlich kannst du die Datei schule.db auch auf einen anderen Computer kopieren und von dort mit einem Programm im gleichen Verzeichnis auf die abgelegten Daten zurückgreifen.      

 

 

ZUM SELBST LÖSEN

 

1.


Erzeuge eine ähnliche Tabelle sports, in der Ergebnisse eines Sporttages gespeichert werden und speichere diese Tabelle unter schulsport.db.

sid lauf hochsprung weitsprung
1 11.2 1.23 4.15
2 14.1 1.41 3.92
3 12.6 1.22 3.88
4 11.5 4.2 1.20



2.

Schreibe ein Programm, um die Sportdaten aus der Tabelle sports wieder zu holen und im Ausgabefenster auszuschreiben.


   

 

1-1
Fachliche Hinweise:

Es handelt sich um eine Datenbank von SQLite, einem insbesondere auf Smartphones weit verbreiteten Datenbank-System zur lokalen Verwaltung von Daten, das keinen Datenbankserver benötigt. Mit einem Datenbank-Browser, beispielsweise DBBrowser for SQLite (download von http://sqlitebrowser.org), kann man die Datenbank untersuchen. Man erkennt, dass beim Speichern der Tabelleninstanz persons eine Datenbank-Tabelle "persons" mit den entsprechenden Datensätzen entstanden ist. Beim wiederholten Speichern wir die vorhergehende Datenbanktabelle zuerst gelöscht.

2-2
Didaktische Hinweise:

Beim Abspeichern in der SQLite-Datenbank wird der Variablenname als Tabellenname verwendet. Es ist aber didaktisch besser, gar nicht von der Tabelle zu sprechen, die in der SQLite-Datenbank erzeugt wird, sondern nur, dass das DbTable-Objekt gespeichert und wieder hergestellt wird.