De canonieke manier is om de ingebouwde cursor-iterator te gebruiken.
curs.execute('select * from people')
for row in curs:
print row
U kunt fetchall()
. gebruiken om alle rijen tegelijk te krijgen.
for row in curs.fetchall():
print row
Het kan handig zijn om dit te gebruiken om een Python-lijst te maken met de geretourneerde waarden:
curs.execute('select first_name from people')
names = [row[0] for row in curs.fetchall()]
Dit kan handig zijn voor kleinere resultatensets, maar kan nadelige bijwerkingen hebben als de resultatenset groot is.
-
U moet wachten tot de volledige resultatenset is teruggestuurd naar uw klantproces.
-
U kunt veel geheugen bij uw cliënt opslokken om de opgebouwde lijst vast te houden.
-
Het kan even duren voordat Python de lijst heeft opgebouwd en gedeconstrueerd die u toch meteen gaat weggooien.
Als u weet dat er een enkele rij wordt geretourneerd in de resultatenset, kunt u fetchone()
aanroepen om de enkele rij te krijgen.
curs.execute('select max(x) from t')
maxValue = curs.fetchone()[0]
Ten slotte kunt u de resultatenset doorlopen en één rij tegelijk ophalen. Over het algemeen heeft dit geen bijzonder voordeel ten opzichte van het gebruik van de iterator.
row = curs.fetchone()
while row:
print row
row = curs.fetchone()