第二十三天 python中游標的使用


游標(cursor):系統為用戶開通的一個數據緩沖區,用於存放SQL語句執行結果。用戶使用的sql會逐一的在游標中獲取記錄,並賦值給主變量,交由Python進一步處理,一組主變量只能存放一條記錄。
例題:
from T1 import connect_mysql
#----主函數
if __name__ ==  '__main__':
    sql= 'select * from test;'
    cnn=connect_mysql()
    cur= cnn.cursor()
#    print (dir(cur))
    try:
        cur.execute(sql)
#----fetchone 取結果的一行
         result=cur.fetchone()
         print (result)
#----fetchmany(nu)根據nu數字取結果行數
         result1=cur.fetchmany(3)
         print (result1)
#----fetchall()取全部結果
        result2=cur.fetchall( )
        # print ('22222222')
        print (result2)
        cur.close()
    except Exception as e:
        cnn.rollback()
        raise e
    finally:
        cnn.close()

 

 
執行結果:
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

 

圖中語句依次執行由於數據只有四條,並且三者語句一起執行,所以執行ftechone取走一條,執行fetchmany(3)取走三條,剩下以為空所以fetchall()只能取空。
 
執行多條語句:
from T1 import connect_mysql
#----主函數
if __name__ == '__main__':
sql= 'select * from test;'
sq11='insert into test(id) VALUES (%s);'
#----將函數組合成多個list
Lis=[]
for i in xrange(40,50):----此處表示批量執行語句的格式,為sql語句+參數,將一列參數(類型為list)逐個傳入sql1中。
Lis.append([str(i)])
# print (Lis)
cnn=connect_mysql()
cur= cnn.cursor()
try:
cur.executemany(sq11,Lis) -----注意二者的執行順序應該先插入后再查詢否則查詢結果為空。
cur.execute(sql)
#----fetchall()取全部結果
result2=cur.fetchall( )
print (result2)
cur.close()
cnn.commit()-------執行語句后需要執行提交否則數據庫內無法生效。
except Exception as e:
cnn.rollback()
raise e
finally:
cnn.close()
執行結果:
 
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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM