अंतर्निहित कर्सर इटरेटर का उपयोग करना कैननिकल तरीका है।
curs.execute('select * from people')
for row in curs:
print row
आप सभी पंक्तियों को एक साथ प्राप्त करने के लिए fetchall()
का उपयोग कर सकते हैं।
for row in curs.fetchall():
print row
पाइथन सूची बनाने के लिए इसका उपयोग करने के लिए सुविधाजनक हो सकता है जिसमें मूल्य वापस आते हैं:
curs.execute('select first_name from people')
names = [row[0] for row in curs.fetchall()]
यह छोटे परिणाम सेट के लिए उपयोगी हो सकता है, लेकिन परिणाम सेट बड़ा होने पर खराब दुष्प्रभाव हो सकते हैं।
-
आपको पूरे परिणाम सेट को वापस लौटने की प्रतीक्षा करनी होगी
आपकी ग्राहक प्रक्रिया।
-
आप अपने ग्राहक को पकड़ने के लिए बहुत सारी मेमोरी खा सकते हैं
बिल्ट-अप सूची।
-
पाइथन के निर्माण और deconstruct के लिए कुछ समय लग सकता है
सूची जिसे आप तुरंत किसी भी तरह से त्यागने जा रहे हैं।
यदि आप जानते हैं कि परिणाम सेट में एक पंक्ति लौटाई जा रही है तो आप एकल पंक्ति प्राप्त करने के लिए fetchone()
पर कॉल कर सकते हैं।
curs.execute('select max(x) from t')
maxValue = curs.fetchone()[0]
अंत में, आप एक समय में एक पंक्ति लाने वाले परिणाम सेट पर लूप कर सकते हैं। सामान्यतः, इटरेटर का उपयोग करने में ऐसा करने में कोई विशेष फायदा नहीं होता है।
row = curs.fetchone()
while row:
print row
row = curs.fetchone()