Cara kanonik adalah dengan menggunakan iterator kursor bawaan.
curs.execute('select * from people')
for row in curs:
print row
Anda dapat menggunakan fetchall()
untuk mendapatkan semua baris sekaligus.
for row in curs.fetchall():
print row
Akan lebih mudah untuk menggunakan ini untuk membuat daftar Python yang berisi nilai yang dikembalikan:
curs.execute('select first_name from people')
names = [row[0] for row in curs.fetchall()]
Ini dapat berguna untuk kumpulan hasil yang lebih kecil, tetapi dapat memiliki efek samping yang buruk jika kumpulan hasil besar.
-
Anda harus menunggu seluruh hasil yang ditetapkan dikembalikan ke proses klien Anda.
-
Anda mungkin menghabiskan banyak memori di klien Anda untuk menyimpan daftar bawaan.
-
Mungkin perlu beberapa saat bagi Python untuk membuat dan mendekonstruksi daftar yang akan segera Anda buang.
Jika Anda tahu ada satu baris yang dikembalikan dalam kumpulan hasil, Anda dapat memanggil fetchone()
untuk mendapatkan satu baris.
curs.execute('select max(x) from t')
maxValue = curs.fetchone()[0]
Terakhir, Anda dapat mengulang set hasil yang mengambil satu baris dalam satu waktu. Secara umum, tidak ada keuntungan khusus dalam melakukan ini daripada menggunakan iterator.
row = curs.fetchone()
while row:
print row
row = curs.fetchone()