अंतर्निहित कर्सर पुनरावर्तक का उपयोग करना विहित तरीका है।
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()]
यह छोटे परिणाम सेट के लिए उपयोगी हो सकता है, लेकिन यदि परिणाम सेट बड़ा है तो इसके बुरे दुष्प्रभाव हो सकते हैं।
-
आपको अपनी क्लाइंट प्रक्रिया में सेट किए गए संपूर्ण परिणाम के वापस आने की प्रतीक्षा करनी होगी।
-
बिल्ट-अप सूची को होल्ड करने के लिए आप अपने क्लाइंट की बहुत सारी मेमोरी खा सकते हैं।
-
पायथन को उस सूची को बनाने और विघटित करने में कुछ समय लग सकता है जिसे आप किसी भी तरह तुरंत त्यागने जा रहे हैं।
यदि आप जानते हैं कि परिणाम सेट में एक ही पंक्ति वापस आ रही है तो आप fetchone()
पर कॉल कर सकते हैं एकल पंक्ति प्राप्त करने के लिए।
curs.execute('select max(x) from t')
maxValue = curs.fetchone()[0]
अंत में, आप एक बार में एक पंक्ति लाने वाले परिणाम सेट पर लूप कर सकते हैं। सामान्य तौर पर, इटरेटर का उपयोग करने पर ऐसा करने में कोई विशेष लाभ नहीं होता है।
row = curs.fetchone()
while row:
print row
row = curs.fetchone()