1. 程式人生 > >12.python之pymsql模塊

12.python之pymsql模塊

pymysql

一、pymysql模塊的簡介。

pymysql是python3.x版本用來操作mysql數據庫的一個模塊,其實和python2.7中的MySQLdb模塊的作用和操作語法都是一模一樣的。

可以通過pip來進行安裝:

pip3.5 install pymysql

pymysql這種數據庫接口的使用,大概分為4個步驟:

執行連接數據庫->執行query->提取數據->關閉連接


在使用pymysql這個模塊時,你需要註意的。

  1. Connection 連接對象。

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

  2. commit 提交。

    對於mysql來說,如果使用支持事務的存儲引擎,那麽每次操作後,commit是必須的,否則不會真正寫入數據庫,對應rollback可以進行相應的回滾,但是commit後是無法再rollback的。commit() 可以在執行很多sql指令後再一次調用,這樣可以適當提升性能。


二、使用示例:

安裝好了之後,import導入。

import pymysql

#創建與數據庫的連接。

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

#創建遊標對象。

cursor = sql_conn.cursor()

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

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

#執行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)


#獲取查詢結果:

如果做的是select查詢操作的話,在遊標對象中execute這個查詢語句後,會返回一個結果集。

返回的這個結果集中,是有指針概念的。

#one=cursor.fetchone() #只獲取結果集中的第一條記錄。(獲取當前指針所在位置向下的一條記錄。)(獲取一條結果後,指針會向下移動一條記錄)

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

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



scroll 移動指針:

#cursor.scroll(-1,mode=‘relative‘) # 相對當前位置移動

#cursor.scroll(2,mode=‘absolute‘) # 相對絕對位置移動

mode為relative時是根據相對位置來移動指針的,整數代表向前移動幾行,負數代表向後移動幾行。

mode為absolute時是根據絕對位置來移動指針的,前面的數字為幾,就會移動到結果集的第幾行。


!!!更改獲取結果的數據類型:

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


commit & close:

對於mysql來說,如果使用支持事務的存儲引擎,那麽每次操作後,commit是必須的,否則不會真正寫入數據庫,對應rollback可以進行相應的回滾,但是commit後是無法再rollback的。commit() 可以在執行很多sql指令後再一次調用,這樣可以適當提升性能。

sql_conn.commit() #提交

cursor.close() #關閉遊標

sql_conn.close() #關閉連接




本文出自 “reBiRTH” 博客,請務必保留此出處http://suhaozhi.blog.51cto.com/7272298/1934192

12.python之pymsql模塊