您好,登錄后才能下訂單哦!
1、什么是游標?
一張圖講述游標的功能:
圖示說明:
2、使用游標的好處?
如果不使用游標功能,直接使用select查詢,會一次性將結果集打印到屏幕上,你無法針對結果集做第二次編程。使用游標功能后,我們可以將得到的結果先保存起來,然后可以隨意進行自己的編程,得到我們最終想要的結果集。
3、利用python連接數據庫,經常會使用游標功能
1)以python連接mysql數據庫為例
2)使用游標的操作步驟
① 連接數據庫,創建一個數據庫對象
db = pymysql.connect(host='localhost',user='root',db='huangwei', password='123456',port=3306,charset='utf8')
注意:我們要操作的是huangwei這個數據庫中的表,因此在連接的時候使用db這個參數來指明要使用哪一個數據庫;由于mysql數據庫就裝在本機上,因此可以寫localhost,當然你也可以寫成主機名,或者主機ip;
② 開啟游標功能,創建游標對象
# 這里使用的是數據庫對象db中的cursor()方法, cursor = db.cursor()
③ 使用execute()方法,執行SQL語句
cursor.execute('select sname,ssex from student')
注意:當開啟游標功能執行這個SQL語句后,系統并不會將結果直接打印到頻幕上,而是將上述得到的結果,找個地方存儲起來,提供一個游標接口給我們,當你需要獲取數據 的時候,就可以從中拿數據。
④ 使用fetchone()或fetchall()獲取數據
# 一次性獲取一條數據 a = cursor.fetchone() # 一次性獲取所有數據 a = cursor.fetchall()
注意:使用游標獲取數據,需要用一個變量將結果存儲起來,才能被我們拿來做二次使用,這里在下面的案例中會體現出來。
⑤ 斷開數據庫,釋放資源
db.close()
3)案例講解
需求:以操做huangwei數據庫中的student表為例 。完成【篩選出女生,同時將sname以這種形式輸出“我叫周梅,我是一個學生!”】這個需求。
① student表
② 使用fetchone()方法,獲取SQL查詢結果集中的數據
db = pymysql.connect(host='localhost',user='root',db='huangwei', password='123456',port=3306,charset='utf8') cursor = db.cursor() cursor.execute('select count(*) from student') aa = cursor.fetchone() print(aa) # 注意這一句一定是在循環之外,不能放到循環里面。想想這是為什么? cursor.execute('select sname,ssex from student') for i in range(aa[0]): a,b = cursor.fetchone() if b == "女": a = "我叫{},我是一個學生!".format(a) print(a) db.close()
結果如下:
③ 使用fetchall()方法,獲取SQL查詢結果集中的數據
db = pymysql.connect(host='localhost',user='root',db='huangwei', password='123456',port=3306,charset='utf8') cursor = db.cursor() cursor.execute('select sname,ssex from student') aa = cursor.fetchall() # print(aa) for a,b in aa: if b == "女": a = "我叫{},我是一個學生!".format(a) print(a) db.close()
結果如下:
④ 結果分析
通過上述操作可以發現,這種游標功能可以幫助我們對SQL語句得到的結果集,進行二次開發,然后通過靈活的python語法,得到任何我們最終想要的結果集。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。