python操作MySQL資料庫

2021-06-16 09:32:05 字數 3149 閱讀 7991

堅持每天學一點,每天積累一點點,作為自己每天的業餘收穫,這個文章是我在吃飯的期間寫的,利用自己零散的時間學了一下python操作mysql,所以整理一下。

我採用的是mysqldb操作的mysql資料庫。先來乙個簡單的例子吧:

import mysqldb

try:

conn=mysqldb.connect(host='localhost',user='root',passwd='root',db='test',port=3306)

cur=conn.cursor()

cur.execute('select * from user')

cur.close()

conn.close()

except mysqldb.error,e:

print"mysql error %d: %s" % (e.args[0], e.args[1])

請注意修改你的資料庫,主機名,使用者名稱,密碼。

下面來大致演示一下插入資料,批量插入資料,更新資料的例子吧:

import mysqldb

try:

conn=mysqldb.connect(host='localhost',user='root',passwd='root',port=3306)

cur=conn.cursor()

cur.execute('create database if not exists python')

conn.select_db('python')

cur.execute('create table test(id int,info varchar(20))')

value=[1,'hi rollen']

cur.execute('insert into test values(%s,%s)',value)

values=

fori in range(20):

cur.executemany('insert into test values(%s,%s)',values)

cur.execute('update test set info="i am rollen" where id=3')

conn.commit()

cur.close()

conn.close()

exceptmysqldb.error,e:

print"mysql error %d: %s" % (e.args[0], e.args[1])

請注意一定要有conn.commit()這句來提交事務要不然不能真正的插入資料。

執行之後我的mysql資料庫的結果就不上圖了。

import mysqldb

try:

conn=mysqldb.connect(host='localhost',user='root',passwd='root',port=3306)

cur=conn.cursor()

conn.select_db('python')

count=cur.execute('select * from test')

print'there has %s rows record' % count

result=cur.fetchone()

printresult

print'id: %s info %s' % result

results=cur.fetchmany(5)

forr in results:

printr

print'=='*10

cur.scroll(0,mode='absolute')

results=cur.fetchall()

forr in results:

printr[1]

conn.commit()

cur.close()

conn.close()

exceptmysqldb.error,e:

print"mysql error %d: %s" % (e.args[0], e.args[1])

執行結果就不貼了,太長了。

查詢後中文會正確顯示,但在資料庫中卻是亂碼的。經過我從網上查詢,發現用乙個屬性有可搞定:

在python**

conn = mysqldb.connect(host='localhost', user='root', passwd='root', db='python') 中加乙個屬性:

改為:conn = mysqldb.connect(host='localhost', user='root', passwd='root', db='python',charset='utf8')

charset是要跟你資料庫的編碼一樣,如果是資料庫是gb2312 ,則寫charset='gb2312'。

下面貼一下常用的函式:

然後,這個連線物件也提供了對事務操作的支援,標準的方法

commit() 提交

rollback() 回滾

cursor用來執行命令的方法:

callproc(self, procname, args):用來執行儲存過程,接收的引數為儲存過程名和引數列表,返回值為受影響的行數

execute(self, query, args):執行單條sql語句,接收的引數為sql語句本身和使用的引數列表,返回值為受影響的行數

executemany(self, query, args):執行單挑sql語句,但是重複執行引數列表裡的引數,返回值為受影響的行數

nextset(self):移動到下乙個結果集

cursor用來接收返回值的方法:

fetchall(self):接收全部的返回結果行.

fetchmany(self, size=none):接收size條返回結果行.如果size的值大於返回的結果行的數量,則會返回cursor.arraysize條資料.

fetchone(self):返回一條結果行.

scroll(self, value, mode='relative'):移動指標到某一行.如果mode='relative',則表示從當前所在行移動value條,如果 mode='absolute',則表示從結果集的第一行移動value條.

python操作mysql查詢資料

首先需要連線資料庫,然後才查詢出資料。例如下表名字為 sinauser iduse id use name11 db12 2db233 db3class database def init self self.conn mysqldb.connect 連線資料庫 host 連線你要取出資料庫的ip,...

Python操作Mysql資料庫

coding utf8 author yangjing import mysqldb 查詢。def select host user root password port 3306,db sql connect mysqldb.connect host host,user user,passwd p...

python操作mysql資料庫

電腦系統版本選擇,這裡安裝過程就不具體描述了,現在來具體說下python操作mysql資料庫進行簡單的增刪改查操作.talk is cheap,show you code 下面就開始寫 usr local bin env python coding utf 8 python連線mysql資料庫和se...