659
24.5
Das Modul sqlite3
24.5.2 Anfragen an eine Datenbank
Für Anfragen an eine Datenbank gibt es den SQL-Befehl SELECT. Eine einfache SELECT-
Anweisung hat folgenden Aufbau:
Damit werden sämtliche Daten der Tabelle erfragt. Das Ergebnis ist eine Kopie der Tabelle
in der Datenbank. Wenn Sie diesen SQL-Befehl mit der
execute()-Methode absetzen,
»empfängt« der Cursor die Daten, die das Datenbanksystem zurückgibt. Es ist eine Folge
von Tupeln, die alle Zeilen der Tabelle darstellen. Sie können das Cursor-Objekt als Iterator
dieser Folge verwenden.
Der Cursor ist ein Iterator, das heißt, er kann auch nur ein einziges Mal »abgefragt« werden.
Wenn Sie die Iteration (
for-Anweisung) ein zweites Mal ausführen, erhalten Sie keine
Daten mehr. Probieren Sie es aus:
Nun wird bei einem Aufruf der
execute()-Methode nicht nur das Cursor-Objekt verändert,
das die Daten aufnimmt. Nein, es wird auch eine weitere Referenz auf das Cursor-Objekt
zurückgegeben. Wenn Sie die
execute()-Methode im interaktiven Modus aufrufen, sehen
Sie in der Folgezeile eine Beschreibung des Cursor-Objektes, z.B.
<sqlite3.Cursor
object at 0x020C1E90>
.
Deshalb können Sie die
execute()-Methode auch in einer Zuweisung verwenden.
SELECT *
FROM tabelle;
>>> c = verbindung.cursor()
>>> c.execute("SELECT * from person")
<sqlite3.Cursor object at 0x020C1E90>
>>> for zeile in c:
print(zeile)
('Melanie Beck', '02302 89912')
('Moritz Blau', '0201 841111')
('Tim Groß', '0251 199348')
>>> for zeile in c:
print(zeile)
>>>
>>> ergebnis = c.execute("SELECT * from person")

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.