二10、Python與Mysql交互

先安裝一個python與MySQL交互的包:MySQL-python
$ gunzip MySQL-python-1.2.2.tar.gz
$ tar -xvf MySQL-python-1.2.2.tar
$ cd MySQL-python-1.2.2
$ python setup.py build
$ python setup.py install
===========================================================================================================================
import MySQLdb
try:
conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',db='py_s10',port=3306)
cur=conn.cursor() #指針(遊標)
insert_data = "insert into students (name,sex,degree) values(%s,%s,%s,)" #插入數據保存在insert_data變量中,students表的結構爲id, #name,sex,degree
cur.excute(insert_data,("jack",3,99)) #這裏我執行插入數據操做
cur.execute('select * from students') #執行命令
print (cur.fetchone()) #取得一條數據(第一條)
print (cur.fetchall()) #取得全部數據
query_res = cur.fetchmany(4) #取得4條數據
conn.rollback() #我在提交以前回滾下,它的數據是提交不到數據庫的
conn.commit() #提交到數據庫,若是沒有這條,只是寫到了內存,沒有真正寫入數據庫
cur.close()
conn.close()
except MySQLdb.Error,e:
print "Mysql Error msg:" ,e
 
 
一次性插入多條數據(謹慎操做):
import MySQLdb
try:
conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',db='py_s10',port=3306)
cur=conn.cursor()
data_list = []
for i in range(10):
data_list.append(('rain_%s' % i,i,i))
insert_data = "insert into students (name,sex,degree) values(%s,%s,%s,)"
cur.excutemany(insert_data,data_list) #這裏我就一次性插入了10條數據
cur.execute('select * from students')
cur.scroll(2,mode='ralative') #從如今的光標位置繼續往下找
print (cur.fetchone())
print (query_res)
cur.close()
conn.close()
except MySQLdb.Error,e:
print "Mysql Error msg:" ,e
 
==============================================================================================================================
經常使用函數:
對事務操做的支持,標準的方法
commit() 提交
rollback() 回滾 #提交了以後就不能回滾了
 
 
cursor用來執行命令的方法:
callproc(self,procname,args):用來執行存儲過程,接收的參數爲存儲過程名和參數列表,返回值爲受影響的行數
excute(self,query,args):執行單條sql語句,接收的參數爲sql語句自己和使用的參數列表,返回值爲受影響的行數
executemany(self,quiry,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條(不經常使用)
相關文章
相關標籤/搜索