python cursor游标_第二十三天 python中游标的使用
游標(biāo)(cursor):系統(tǒng)為用戶開通的一個(gè)數(shù)據(jù)緩沖區(qū),用于存放SQL語句執(zhí)行結(jié)果。用戶使用的sql會(huì)逐一的在游標(biāo)中獲取記錄,并賦值給主變量,交由Python進(jìn)一步處理,一組主變量只能存放一條記錄。
例題:
from T1 importconnect_mysql#----主函數(shù)
if __name__ == '__main__':
sql= 'select * from test;'cnn=connect_mysql()
cur=cnn.cursor()#print (dir(cur))
try:
cur.execute(sql)#----fetchone 取結(jié)果的一行
result=cur.fetchone()print(result)#----fetchmany(nu)根據(jù)nu數(shù)字取結(jié)果行數(shù)
result1=cur.fetchmany(3)print(result1)#----fetchall()取全部結(jié)果
result2=cur.fetchall( )#print ('22222222')
print(result2)
cur.close()exceptException as e:
cnn.rollback()raiseefinally:
cnn.close()
執(zhí)行結(jié)果:
C:\Python27\python.exe E:/untitled/mysql/T2.py
(100L,)
((200L,), (300L,), (300L,))
((40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,))
Process finished with exit code 0
圖中語句依次執(zhí)行由于數(shù)據(jù)只有四條,并且三者語句一起執(zhí)行,所以執(zhí)行ftechone取走一條,執(zhí)行fetchmany(3)取走三條,剩下以為空所以fetchall()只能取空。
執(zhí)行多條語句:
from T1 import connect_mysql
#----主函數(shù)
if __name__ == '__main__':
sql= 'select * from test;'
sq11='insert into test(id) VALUES (%s);'
#----將函數(shù)組合成多個(gè)list
Lis=[]
for i in xrange(40,50):----此處表示批量執(zhí)行語句的格式,為sql語句+參數(shù),將一列參數(shù)(類型為list)逐個(gè)傳入sql1中。
Lis.append([str(i)])
# print (Lis)
cnn=connect_mysql()
cur= cnn.cursor()
try:
cur.executemany(sq11,Lis) -----注意二者的執(zhí)行順序應(yīng)該先插入后再查詢否則查詢結(jié)果為空。
cur.execute(sql)
#----fetchall()取全部結(jié)果
result2=cur.fetchall( )
print (result2)
cur.close()
cnn.commit()-------執(zhí)行語句后需要執(zhí)行提交否則數(shù)據(jù)庫內(nèi)無法生效。
except Exception as e:
cnn.rollback()
raise e
finally:
cnn.close()
執(zhí)行結(jié)果:
C:\Python27\python.exe E:/untitled/mysql/T2.py
((100L,), (200L,), (300L,), (300L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,), (40L,), (41L,), (42L,), (43L,), (44L,), (45L,), (46L,), (47L,), (48L,), (49L,))
Process finished with exit code 0
總結(jié)
以上是生活随笔為你收集整理的python cursor游标_第二十三天 python中游标的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: postscript怎么打开_怎么把在学
- 下一篇: python在工厂中的运用_在pytho