溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中pymsql模塊怎么用

發(fā)布時(shí)間:2021-11-24 11:22:59 來源:億速云 閱讀:146 作者:小新 欄目:數(shù)據(jù)庫(kù)

這篇文章主要介紹了python中pymsql模塊怎么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一、pymysql模塊的簡(jiǎn)介。

pymysql是python3.x版本用來操作mysql數(shù)據(jù)庫(kù)的一個(gè)模塊,其實(shí)和python2.7中的MySQLdb模塊的作用和操作語法都是一模一樣的。

可以通過pip來進(jìn)行安裝:

pip3.5 install pymysql

pymysql這種數(shù)據(jù)庫(kù)接口的使用,大概分為4個(gè)步驟:

執(zhí)行連接數(shù)據(jù)庫(kù)->執(zhí)行query->提取數(shù)據(jù)->關(guān)閉連接

在使用pymysql這個(gè)模塊時(shí),你需要注意的。

  1. Connection 連接對(duì)象。

    雖然在MySQLdb.Connect(host ,user , passw , db)函數(shù)中,我們經(jīng)常使用的只是這幾個(gè)參數(shù),但是其實(shí)里面還有很多比如字符集、線程安全、ssl等也都是很重要的參數(shù),使用時(shí)要身份注意。

  2. commit 提交。

    對(duì)于mysql來說,如果使用支持事務(wù)的存儲(chǔ)引擎,那么每次操作后,commit是必須的,否則不會(huì)真正寫入數(shù)據(jù)庫(kù),對(duì)應(yīng)rollback可以進(jìn)行相應(yīng)的回滾,但是commit后是無法再rollback的。commit() 可以在執(zhí)行很多sql指令后再一次調(diào)用,這樣可以適當(dāng)提升性能。

二、使用示例:

安裝好了之后,import導(dǎo)入。

import pymysql

#創(chuàng)建與數(shù)據(jù)庫(kù)的連接。

sql_conn=pymysql.connect(host='10.39.0.5',port=3306,user='root',passwd='123456',db='db_1')

#創(chuàng)建游標(biāo)對(duì)象。

cursor = sql_conn.cursor()

hire_start = datetime.date(1999, 1, 1)

hire_end = datetime.date(2016, 12, 31)

#執(zhí)行sql語句。

sql = 'SELECT first_name, last_name, hire_date FROM employees WHERE hire_date BETWEEN %s AND %s'  %(hire_start,hire_end)

cursor.execute(sql)

#獲取查詢結(jié)果:

如果做的是select查詢操作的話,在游標(biāo)對(duì)象中execute這個(gè)查詢語句后,會(huì)返回一個(gè)結(jié)果集。

返回的這個(gè)結(jié)果集中,是有指針概念的。

#one=cursor.fetchone() #只獲取結(jié)果集中的第一條記錄。(獲取當(dāng)前指針?biāo)谖恢孟蛳碌囊粭l記錄。)(獲取一條結(jié)果后,指針會(huì)向下移動(dòng)一條記錄)

#many=cursor.fetchmany(2)#以當(dāng)前指針位置為基準(zhǔn),從結(jié)果集中向下獲取幾條記錄。

all=cursor.fetchall()#以當(dāng)前指針位置為基準(zhǔn),一直獲取到結(jié)果集結(jié)束的位置。(也可以理解為獲取結(jié)果集中所有的結(jié)果。)

scroll 移動(dòng)指針:

#cursor.scroll(-1,mode='relative')  # 相對(duì)當(dāng)前位置移動(dòng)

#cursor.scroll(2,mode='absolute') # 相對(duì)絕對(duì)位置移動(dòng)

mode為relative時(shí)是根據(jù)相對(duì)位置來移動(dòng)指針的,整數(shù)代表向前移動(dòng)幾行,負(fù)數(shù)代表向后移動(dòng)幾行。

mode為absolute時(shí)是根據(jù)絕對(duì)位置來移動(dòng)指針的,前面的數(shù)字為幾,就會(huì)移動(dòng)到結(jié)果集的第幾行。

!??!更改獲取結(jié)果的數(shù)據(jù)類型:

#更改獲取數(shù)據(jù)結(jié)果的數(shù)據(jù)類型,默認(rèn)是元組,可以改為字典等:conn.cursor(cursor=pymysql.cursors.DictCursor)

commit & close:

對(duì)于mysql來說,如果使用支持事務(wù)的存儲(chǔ)引擎,那么每次操作后,commit是必須的,否則不會(huì)真正寫入數(shù)據(jù)庫(kù),對(duì)應(yīng)rollback可以進(jìn)行相應(yīng)的回滾,但是commit后是無法再rollback的。commit() 可以在執(zhí)行很多sql指令后再一次調(diào)用,這樣可以適當(dāng)提升性能。

sql_conn.commit() #提交

cursor.close() #關(guān)閉游標(biāo)

sql_conn.close() #關(guān)閉連接

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“python中pymsql模塊怎么用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI