亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中什么是pymsql模塊

發布時間:2020-08-26 17:01:45 來源:億速云 閱讀:158 作者:Leah 欄目:編程語言

python中什么是pymsql模塊?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

python3操作pymsql模塊

pymysql是python中操作mysql的模塊。

1.pymysql模塊的安裝

pip3 install pymysql

也可以使用pycharm這個IDE工具來安裝pymysql這個模塊。

2.pymysql模塊的使用

1.執行mysql語句,獲取查詢的結果

代碼如下:

#!/usr/bin/env python
#_*_coding:utf-8_*_
import pymysql
#創建連接
conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="",db="db1")
#創建游標
cursor=conn.cursor()
#執行mysql語句,并返回執行的結果
res=cursor.execute("select name from db1")
#打印執行的結果
print(res)
#把要執行的語句提交,否則無法保存新建或者修改數據
conn.commit()
#關閉游標
cursor.close()
#關閉連接
conn.close()

執行結果為:

4

因為從db1.db1這張表中檢索到四條數據,所以返回的值為4

需要注意的是,查詢過程中存在中文的話,連接需要添加**"charset='utf-8'"**,否則中文會顯示亂碼。

2.獲取查詢的數據

代碼如下:

#!/usr/bin/env python
#_*_coding:utf-8_*_
import pymysql
#創建連接
conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="",db="db1")
#創建游標
cursor=conn.cursor()
#執行mysql語句
cursor.execute("select name from db1")
#獲取所有的執行結果
res=cursor.fetchall()
#打印獲取到的執行結果
print(res)
#提交要執行的mysql指令
conn.commit()
#關閉游標
cursor.close()
#關閉連接
conn.close()

執行結果為:

(('xiaoming',), ('xiaobing',), ('xiaoyong',), ('xiaojian',))

可以看到,返回的結果是一個元組類型的數據。

還可以在創建游標的時候,使用選項來指定返回的結果為哪種數據類型:

cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)

使用這個指令可以把返回的結果變成字典類型。

在獲取執行的結果時,可以指定獲取的結果的條數,可以使用的選項如下:

fetchone()          取得檢索結果的一條數據

fetchmany(n)        取得檢索結果的n條數據

fetchall()          取得檢索結果的所有數據

需要注意的是,與讀取文件時的指針類似.如果在同一段代碼中,先使用fetchone()獲取檢索結果的第一條數據,

然后再使用fetchmany(2)的話,指針會在檢索結果的當前位置向后讀取執行結果,而不會從頭開始重新讀取檢索的結果。

代碼如下:

#!/usr/bin/env python
#_*_coding:utf-8_*_
import pymysql
#創建連接
conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="",db="db1")
#創建游標
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
#執行mysql語句,并返回執行的結果
cursor.execute("select name from db1")
#取執行結果的第一條數據,并打印
res1=cursor.fetchone()
print("this is first result:",res1)
#從剩下的執行結果中再取兩條數據,并打印
res2=cursor.fetchmany(2)
print("this is second result:",res2)
#再從剩下的數據中取所有的數據,并打印
res3=cursor.getchall()
print("this is third result:",res3)
#提交要執行的命令
conn.commit()
#關閉游標
cursor.close()
#關閉連接
conn.close()

執行結果如下:

this is first result: {'name': 'xiaoming'}
this is second result: [{'name': 'xiaobing'}, {'name': 'xiaoyong'}]
this is third result: [{'name': 'xiaojian'}]

第一次取第一行的檢索結果,第二次取兩行的時候,第三次取剩下的所有的結果.

因為數據表中只有四條記錄,而第一次已經取走一行了,

第二次從第一次取得的結果又向后繼續取兩個值,所以最后取所有的值時,只剩下一個,所以第三次取得一個值。

在創建游標的時候,指定了返回的數據類型為字典類型,所以返回的結果是字典數據類型。

在使用fetch時,按照順序進行取得數據,可以使用cursor.scroll(num,mode)來移動游標位置

mode指定位置,是相對當前位置,還是絕對位置

num指定移動的位數,正數向后移動,負數向前移動

例如:

cursor.scroll(1,mode="relative")        #相對于當前的指針位置取一個值

cursor.scroll(2,mode="absolute")        #在當前的絕對位置取一個值

"relative"與"absolute"的區別,看下面兩段代碼:

第一段代碼:

#!/usr/bin/env python
#_*_coding:utf-8_*_
import pymysql
conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="",db="db1")
cursor=conn.cursor()
cursor.execute("SELECT * FROM db1")
cursor.fetchone()
cursor.scroll(1,mode="relative")
print(cursor.fetchone())
conn.commit()
cursor.close()
conn.close()

執行結果如下:

(3, 'xiaoyong', 'xiaoyong')

第二段代碼:

#!/usr/bin/env python
#_*_coding:utf-8_*_
import pymysql
conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="",db="db1")
cursor=conn.cursor()
cursor.execute("SELECT * FROM db1")
cursor.fetchone()
cursor.scroll(1,mode="absolute")
print(cursor.fetchone())
conn.commit()
cursor.close()
conn.close()

執行結果如下:

(2, 'xiaobing', 'xiaobing')

3.獲取新創建數據的自增ID

代碼如下:

#!/usr/bin/env python
# _*_coding:utf-8_*_
import pymysql
conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="",db="db1")
cursor=conn.cursor()
cursor.execute('INSERT INTO db1(name,password) VALUES("xiaofei","xiaofei")')
conn.commit()
cursor.close()
conn.close()
res=cursor.lastrowid
print(res)

執行結果為:

5

數據表db1中本來有四條數據,現在新增一條,其ID為自增類型,所以返回結果為5


關于python中什么是pymsql模塊問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

秀山| 射洪县| 阜城县| 休宁县| 淳化县| 平和县| 长阳| 抚州市| 沙田区| 乐陵市| 富民县| 广德县| 南溪县| 延安市| 精河县| 靖安县| 湘乡市| 平山县| 虹口区| 沂南县| 伊春市| 娱乐| 故城县| 卓资县| 巩留县| 巫山县| 商城县| 五大连池市| 正安县| 鄄城县| 瑞昌市| 峨山| 同德县| 祁东县| 全州县| 永嘉县| 墨脱县| 北京市| 乌拉特前旗| 台江县| 五寨县|