本文實例講述了python中MySQLdb模塊用法。分享給大家供大家參考。具體用法分析如下:
MySQLdb其實有點像php或asp中連接數(shù)據(jù)庫的一個模式了,只是MySQLdb是針對mysql連接了接口,我們可以在python中連接MySQLdb來實現(xiàn)數(shù)據(jù)的各種操作。
python連接mysql的方案有oursql、PyMySQL、 myconnpy、MySQL Connector 等,不過本篇要說的確是另外一個類庫MySQLdb,MySQLdb 是用于Python鏈接Mysql數(shù)據(jù)庫的接口,它實現(xiàn)了 Python 數(shù)據(jù)庫 API 規(guī)范 V2.0,基于 MySQL C API 上建立的。可以從:https://pypi.python.org/pypi/MySQL-python 進行獲取和安裝,而且很多發(fā)行版的linux源里都有該模塊,可以直接通過源安裝。
一、數(shù)據(jù)庫連接
MySQLdb提供了connect方法用來和數(shù)據(jù)庫建立連接,接收數(shù)個參數(shù),返回連接對象:
代碼如下:conn=MySQLdb.connect(host="localhost",user="root",passwd="jb51",db="test",charset="utf8")
比較常用的參數(shù)包括:
host:數(shù)據(jù)庫主機名.默認是用本地主機
user:數(shù)據(jù)庫登陸名.默認是當(dāng)前用戶
passwd:數(shù)據(jù)庫登陸的秘密.默認為空
db:要使用的數(shù)據(jù)庫名.沒有默認值
port:MySQL服務(wù)使用的TCP端口.默認是3306
charset:數(shù)據(jù)庫編碼
更多關(guān)于參數(shù)的信息可以查這里 http://mysql-python.sourceforge.net/MySQLdb.html
然后,這個連接對象也提供了對事務(wù)操作的支持,標(biāo)準(zhǔn)的方法:
commit() 提交
rollback() 回滾
看一個簡單的查詢示例如下:
代碼如下:#!/usr/bin/python
# encoding: utf-8
import MySQLdb
# 打開數(shù)據(jù)庫連接
db = MySQLdb.connect("localhost","root","361way","test" )
# 使用cursor()方法獲取操作游標(biāo)
cursor = db.cursor()
# 使用execute方法執(zhí)行SQL語句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法獲取一條數(shù)據(jù)庫。
data = cursor.fetchone()
print "Database version : %s " % data
# 關(guān)閉數(shù)據(jù)庫連接
db.close()
腳本執(zhí)行結(jié)果如下:
Database version : 5.5.40
二、cursor方法執(zhí)行與返回值
cursor方法提供兩類操作:1.執(zhí)行命令,2.接收返回值 。
cursor用來執(zhí)行命令的方法
代碼如下://用來執(zhí)行存儲過程,接收的參數(shù)為存儲過程名和參數(shù)列表,返回值為受影響的行數(shù)
callproc(self, procname, args)
//執(zhí)行單條sql語句,接收的參數(shù)為sql語句本身和使用的參數(shù)列表,返回值為受影響的行數(shù)
execute(self, query, args)
//執(zhí)行單挑sql語句,但是重復(fù)執(zhí)行參數(shù)列表里的參數(shù),返回值為受影響的行數(shù)
executemany(self, query, args)
//移動到下一個結(jié)果集
nextset(self)
cursor用來接收返回值的方法
//接收全部的返回結(jié)果行.
fetchall(self)
//接收size條返回結(jié)果行.如果size的值大于返回的結(jié)果行的數(shù)量,則會返回cursor.arraysize條數(shù)據(jù)
新聞熱點
疑難解答
圖片精選