Il modo canonico consiste nell'usare l'iteratore del cursore integrato.
curs.execute('select * from people')
for row in curs:
print row
Puoi usare fetchall()
per ottenere tutte le righe contemporaneamente.
for row in curs.fetchall():
print row
Può essere conveniente usarlo per creare un elenco Python contenente i valori restituiti:
curs.execute('select first_name from people')
names = [row[0] for row in curs.fetchall()]
Questo può essere utile per set di risultati più piccoli, ma può avere effetti collaterali negativi se il set di risultati è grande.
-
Devi attendere che l'intero set di risultati venga restituito al processo del tuo cliente.
-
Potresti consumare molta memoria nel tuo cliente per contenere l'elenco costruito.
-
Potrebbe volerci un po' prima che Python costruisca e decostruisca l'elenco che scarterai comunque immediatamente.
Se sai che è stata restituita una singola riga nel set di risultati, puoi chiamare fetchone()
per ottenere la singola riga.
curs.execute('select max(x) from t')
maxValue = curs.fetchone()[0]
Infine, puoi scorrere il set di risultati recuperando una riga alla volta. In generale, non c'è alcun vantaggio particolare nell'usare l'iteratore.
row = curs.fetchone()
while row:
print row
row = curs.fetchone()