Abfragen an die Datenbank in Python senden
Nach dem Verbinden mit der Datenbank können
Abfragen an sie gesendet werden. Dies geschieht mit der
Variable query, in der
die SQL-Abfrage zum Abrufen aller
Daten aus der Tabelle users geschrieben wird. Diese
Variable sollte im Block mit der
Variable connection geschrieben werden:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
Als nächstes schreiben wir eine weitere with-Konstruktion
für die Arbeit mit dem MySQLConnection-Objekt,
das in der Variable connection gespeichert ist.
Auf dieses Objekt müssen nacheinander
spezielle Methoden angewendet werden. Die erste davon
ist die Methode cursor, die
aus dem MySQLConnection-Objekt ein
CMySQLCursor-Objekt erstellt. Auf dieses wird wiederum
die Methode execute angewendet, die
die Ausführung der SQL-Abfrage sicherstellt,
die ihr als Parameter übergeben wurde:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
Als nächstes müssen alle Daten mit der
Methode fetchall extrahiert und in der
Variable result gespeichert werden. Um die
erhaltenen Daten auszugeben, müssen sie
durch eine for-Schleife geschickt werden:
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
Der vollständige Code sieht dann so aus:
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
print(cursor)
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
except Error as e:
print(e)
Nach der Ausführung des Codes werden alle Datensätze als Tupel in der Konsole ausgegeben:
(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
Geben Sie alle Daten aus der Tabelle users aus.