Last Updated on 2. Juni 2016 by Thomas J. Fehr
Beim Entwickeln von Python-Scripts benötigt man oft eine Möglichkeit, Daten schnell und komfortabel zu speichern. Dazu eignet sich die Programmbibliothek SQLite hervorragend. Bei SQLite befindet sich die gesamte relationale Datenbank in einer einzigen Datei, da dieses System für die Verwendung im Embedded-Bereich entworfen wurde. Dabei unterstützt SQLite viele SQL-Sprachbefehle, welche im SQL-92-Standard festgelegt wurden. Das sind Funktionen wie Transaktionen, Views, Subselects und Trigger. Um SQLite in Python zu verwenden müssen wir die Bibliothek erst einbinden:
import sqlite3
Der nächste Schritt ist das Erstellen einer Verbindung zu der SQLite-Datenbank. Dies geschieht mit Hilfe eines “connection objects” das die Datenbank repräsentiert.
connection = sqlite3.connect('c:\\temp\spy.db')
Es existiert die Möglichkeit die Datenbank im Memory zu erzeugen, dazu wird anstelle des Pfades zur Datenbank “:memory:” verwendet.
Hier ein simples Beispiel bei dem eine Tabelle mit dem Namen “spydb” erstellt wird. Die Tabelle enthält 3 Spalten: id mit dem Autowert, ipsend und iprecv als Textfeld.
In der Zeile 8 und 9 werden Daten in die Tabelle geschrieben und in Zeile 12 mit einem “commit” die Transaktion ausgeführt.
# create a cursor to work with the database
mycursor = connection.cursor()
# create a new table
mycursor.execute("create table spydb (id INTEGER PRIMARY KEY ASC, ipsend text, iprecv text)")
# insert data to the table
mycursor.execute("insert into spydb (ipsend , iprecv ) values('10.0.0.1','10.0.0.2')")
mycursor.execute("insert into spydb (ipsend , iprecv ) values('10.0.0.3','10.0.0.15')")
# save the changes
connection.commit();
# insert data to the table
mycursor.execute("insert into spydb (ipsend , iprecv ) values('10.0.13.99','10.0.0.15')")
# rollback the changes
connection.rollback();
mycursor.execute('select * from spydb order by id desc')
for row in mycursor:
print row
# close the cursor if we are finish
mycursor.close()
Wenn wir nun auf der Zeile 20 alle Daten aus der Tabelle auswählen und ausgeben, sieht dies wie folgt aus:
In der Zeile 15 wird ein weiterer Datensatz hinzugefügt, dieser wird jedoch nicht ausgegeben, da die Transaktion rückgängig (Zeile 18) gemacht wurde.