import pymysql
db = pymysql.connect('localhost','root','','MyFirst') #連接至MyFirst數(shù)據(jù)庫
cursor = db.cursor() #創(chuàng)建cursor,用cursor.execute()以執(zhí)行mysql數(shù)據(jù)庫語句。
cursor.execute("select version()") #執(zhí)行select version()
data = cursor.fetchone()
print("database version : %s" % data)
db.close()
解釋一下cursor:
cursor叫做游標(biāo)對象大磺,相當(dāng)于行駛在連接python與mysql高速上的列車抡句。通過cursor,起到數(shù)據(jù)交互的作用杠愧。
常用方法:
close():關(guān)閉此游標(biāo)對象
fetchone():得到結(jié)果集的下一行
fetchmany([size = cursor.arraysize]):得到結(jié)果集的下幾行
fetchall():得到結(jié)果集中剩下的所有行
excute(sql, args]):執(zhí)行一個數(shù)據(jù)庫查詢或命令
excutemany(sql, args):執(zhí)行多個數(shù)據(jù)庫查詢或命令
這個例子還是比較簡單的待榔。
一、在表中插入內(nèi)容:
import pymysql
db = pymysql.connect("localhost","root","","MyFirst" )
cursor = db.cursor()
#向數(shù)據(jù)庫中添加內(nèi)容
sql = """INSERT INTO EMPLOYEE2(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
# 執(zhí)行sql語句
cursor.execute(sql)
# 提交到數(shù)據(jù)庫執(zhí)行
db.commit()
except:
# 如果發(fā)生錯誤則回滾
db.rollback()
# 關(guān)閉數(shù)據(jù)庫連接
db.close()
對于mysql來說流济,如果使用支持事務(wù)的存儲引擎锐锣,那么每次操作后,commit是必須的绳瘟,否則不會真正寫入數(shù)據(jù)庫雕憔,對應(yīng)rollback可以進(jìn)行相應(yīng)的回滾,但是commit后是無法再rollback的糖声。commit() 可以在執(zhí)行很多sql指令后再一次調(diào)用斤彼,這樣可以適當(dāng)提升性能。
二蘸泻、數(shù)據(jù)庫查詢操作
import pymysql
# 打開數(shù)據(jù)庫連接
db = pymysql.connect("localhost","root","","MyFirst" )
# 使用cursor()方法獲取操作游標(biāo)
cursor = db.cursor()
# SQL 查詢語句
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > '%d'" % (1000)
try:
# 執(zhí)行SQL語句
cursor.execute(sql)
# 獲取所有記錄列表
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 打印結(jié)果
print ("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
(fname, lname, age, sex, income ))
except:
print ("Error: unable to fetch data")
# 關(guān)閉數(shù)據(jù)庫連接
db.close()
關(guān)鍵語句:
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > '%d'" % (1000)
三琉苇、數(shù)據(jù)庫更新操作:
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1
WHERE SEX = '%c'" % ('M')
四、刪除操作:
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1
WHERE SEX = '%c'" % ('M')