INSERT

3. DATENSÄTZE EINFÜGEN (INSERT)

 

 

DU LERNST HIER...

 

wie du weitere Datensätze in eine bestehende Datenbank-Tabelle einfügen und die Tabellendaten sortiert anzeigen kannst

 

 

MUSTERBEISPIEL

 

Eine Datenbanktabelle kannst du jederzeit mit neuen Datensätzen ergänzen. In deinem Beispiel willst du in die Tabelle persons folgenden Datensatz einfügen:

id name vorname wohnort geschlecht jahrgang
7 Aerni Linus Burgdorf m 2004

Dazu musst du zuerst mit dem Befehl restore() die Datenbank schule.db zurückholen und eine Instanz von DbTablen. Dann fügst du mit dem Befehl insert() die neuen Daten in die Tabelle ein, wobei die Reihenfolge der Parameter derjenigen der Felder entsprechen muss. Nach dem Einfügen schreibst du die Tabelle zur Kontrolle im Ausgabefenster aus. Dazu verwendest du den Befehl printTable(). Am Schluss speicherst du die ergänzte Tabelle wieder in der Datenbank mit dem Namen schule.db.

Programm:

from dbtable import *

DbTable.restore()
persons = DbTable("persons") 
persons.insert(7, 'Aerni', 'Linus', 'Burgdorf', 'm', 2004) 
persons.printTable()
DbTable.save('schule.db')
► In Zwischenablage kopieren

 

Ergebnis:

Die Reihenfolge der Datensätze in einer Datenbank-Tabelle entspricht der Reihenfolge, in der diese eingefügt wurden. Du kannst die Datensätze aber auch sortiert nach Name, Jahrgang oder einem anderen Attribut anzeigen.

Programm:

from dbtable import *

DbTable.restore()
persons = DbTable("persons") 
persons.printTable(sortAttr = "Name")
► In Zwischenablage kopieren

Ergebnis:

Standardmässig werden Daten in einer aufsteigenden Reihenfolge sortiert. Wenn du die Datensätze sortiert nach Jahrgang und zwar vom jüngsten zum ältesten anzeigen willst, muss du zusätzlich den Parameter ascending = False verwenden.

Programm:

from dbtable import *

DbTable.restore()
persons = DbTable("persons") 
persons.printTable(sortAttr = "jahrgang", ascending = False)
► In Zwischenablage kopieren

Ergebnis:

 

 

MERKE DIR...

 

Mit dem Befehl insert() kannst du beliebig viel neue Datensätze in eine bestehende Tabelle einfügen. Um die Daten sortiert anzuzeigen, gibst du im Printbefehl an, nach welchem Feldnamen die Sortierung erfolgen soll.  Der Parameter ascending = False bewirkt Sortierung in absteigender Reihenfolge.    

 

 

ZUM SELBST LÖSEN

 

1.

Füge in die Tabelle persons zwei weitere Datensätze ein. Zum Beispiel:

 id  name  vorname  wohnort  geschlecht  jahrgang
 8  Amsler  Fabio  Bern  m  2005
 9  Meier  Nina  Aargau  w  2003

2.

Schreibe ein Programm, um die Personendaten wieder zu holen und sortiert
a) nach dem Namen
b) absteigend nach Jahrgang
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.


Warning: include(a/3-2.html): failed to open stream: No such file or directory in /usr/share/nginx/html/db/insert.inc.php on line 194

Warning: include(): Failed opening 'a/3-2.html' for inclusion (include_path='.:/usr/local/lib/php') in /usr/share/nginx/html/db/insert.inc.php on line 194

Warning: include(a/3-3.html): failed to open stream: No such file or directory in /usr/share/nginx/html/db/insert.inc.php on line 198

Warning: include(): Failed opening 'a/3-3.html' for inclusion (include_path='.:/usr/local/lib/php') in /usr/share/nginx/html/db/insert.inc.php on line 198