Modul canonic este de a folosi iteratorul cursorului încorporat.
curs.execute('select * from people')
for row in curs:
print row
Puteți folosi fetchall()
pentru a obține toate rândurile simultan.
for row in curs.fetchall():
print row
Poate fi convenabil să folosiți acest lucru pentru a crea o listă Python care conține valorile returnate:
curs.execute('select first_name from people')
names = [row[0] for row in curs.fetchall()]
Acest lucru poate fi util pentru seturi de rezultate mai mici, dar poate avea efecte secundare nefavorabile dacă setul de rezultate este mare.
-
Trebuie să așteptați să se întoarcă întregul set de rezultate
procesul clientului dvs.
-
Poți consuma o mulțime de memorie în clientul tău
lista construită.
-
Ar putea dura ceva timp ca Python să construiască și să deconstruiască
listă pe care o veți renunța imediat.
Dacă știți că un singur rând este returnat în setul de rezultate, puteți apela fetchone()
pentru a obține rândul unic.
curs.execute('select max(x) from t')
maxValue = curs.fetchone()[0]
În cele din urmă, puteți trece peste setul de rezultate prin preluarea unui rând la un moment dat. În general, nu există niciun avantaj deosebit în ceea ce privește utilizarea acestui iterator.
row = curs.fetchone()
while row:
print row
row = curs.fetchone()