In einem früheren Beitrag zu SQLite3 und Python habe ich einer SQLite 3-Datenbank zwei verwandte Tabellen hinzugefügt, via Python. Die Tabellen heißen UniversitätenTBxx und StudentenTBxx. Beide Tabellen werden in einer Datenbank namens „newDatabase.db“ gespeichert. Die Studenten sind an einer Universität eingeschrieben. Informationen zur jeweiligen Universität sind in der Tabelle TBTX der Universität enthalten.
In diesem Beitrag werde ich eine grundlegende SQL-Abfrage zum Abrufen von Daten aus der SQLite 3-Datenbank implementieren. Lassen Sie uns zunächst die Implementierung einer relevanten Funktion zum Erstellen einer Datenbankverbindung wiederholen:
# SQLite3-Modul importieren
import sqlite3
# Diese Funktion erstellt eine Datenbankverbindung zu einer Datenbankdatei
# Parameter: Name der Datenbankdatei
# Rückgabewert: Datenbankverbindung
def create_connection(db_file):
conn = None
try:
conn = sqlite3.connect(db_file)
return conn
except Error as e:
print(e)
return conn
Da wir den Datenbanknamen kennen, können wir jetzt mit der obigen Funktion eine Verbindung herstellen:
# Abrufen eines Referenzhandlers für die Verbindung mit der Datenbank dbConnection = create_connection("newDatabase.db")
Wir haben jetzt einen Verweis auf die Verbindung zur entsprechenden Datenbank. Implementieren wir einen SELECT * -Befehl für die Universitätstabelle mit Python und dem sqlite3-Modul:
cursorObj = dbConnection.cursor()
cursorObj.execute("SELECT * FROM universitiesTBxx")
rowList = cursorObj.fetchall()
for row in rowList:
print(row)
('MIT', 'USA') ('ETH', 'CH') ('DTU', 'DK')
Wir könnten z.B. versuchen Sie auch eine SELECT * FROM tableName WHERE-Bedingungsanweisung. Ich möchte z.B. nur Studenten zurückgeben, die an der ETH Zürich studiert haben:
cursorObj.execute("SELECT * FROM studentsTBxx WHERE university = 'ETH'")
rowList = cursorObj.fetchall()
for row in rowList:
print(row)
(1, 'Linnart', 'ETH', 'MSc')
Wir könnten auch eine Funktion implementieren, die generisch die Ausführung einer SELECT-Anweisung aus einem parametrisierten Tabellennamen unter Verwendung parametrischer Filter ermöglicht.
Wirtschaftsingenieur mit Interesse an Optimierung, Simulation und mathematischer Modellierung in R, SQL, VBA und Python
Leave a Reply