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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/818/viewspace-2837288/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python之logging模組相關介紹Python
- Python pymsql模組PythonSQL
- Python 關於JSON模組介紹PythonJSON
- Python之set集合的相關介紹Python
- Python之函式的相關介紹Python函式
- python基礎之-sys模組、os模組基本介紹(未完成)Python
- python 時間相關模組Python
- 簡單介紹python process模組Python
- Python的常見模組:OS和 time模組介紹Python
- Django重要元件之Auth模組介紹Django元件
- Nginx 相關介紹Nginx
- Python3 日曆(Calendar)模組介紹Python
- Python的包(package)和模組(module)介紹PythonPackage
- JavaScript 模組相關JavaScript
- linux使用者及組相關檔案介紹Linux
- 【StoneDB 模組介紹】伺服器模組伺服器
- Drupal建站的相關介紹
- camunda相關資料介紹
- RTSP 流相關工具介紹
- Python模組之urllib模組Python
- python模組之collections模組Python
- 3.03 模組外掛介紹
- Android模組化框架介紹Android框架
- ModStartCMS模組開發介紹
- Python 位元組碼介紹Python
- Python import相關內容區別介紹( import *** as 、from***import )PythonImport
- python之模組Python
- Python中爬蟲模組有哪些?優缺點介紹!Python爬蟲
- Python-VidGear模組翻譯系列-01-Introduction介紹Python
- Python學習【第十三篇】隨機數相關:random模組&string模組Python隨機random
- Android多渠道打包相關介紹Android
- Go gRPC 系列一:相關介紹GoRPC
- 設計模式的相關介紹設計模式
- ASP.NET Core模組化前後端分離快速開發框架介紹之3、資料訪問模組介紹ASP.NET後端框架
- python3中的re模組簡單介紹及使用Python
- python模組之configparserPython
- python模組之hashlibPython
- python之shutil模組Python