import pymysql
db = pymysql.connect('localhost','root','','MyFirst') #連接至MyFirst數據庫
cursor = db.cursor() #創建cursor,用cursor.execute()以執行mysql數據庫語句。
cursor.execute("select version()") #執行select version()
data = cursor.fetchone()
print("database version : %s" % data)
db.close()
解釋一下cursor:
cursor叫做游標對象,相當于行駛在連接python與mysql高速上的列車。通過cursor,起到數據交互的作用。
常用方法:
close():關閉此游標對象
fetchone():得到結果集的下一行
fetchmany([size = cursor.arraysize]):得到結果集的下幾行
fetchall():得到結果集中剩下的所有行
excute(sql, args]):執行一個數據庫查詢或命令
excutemany(sql, args):執行多個數據庫查詢或命令
這個例子還是比較簡單的。
一、在表中插入內容:
import pymysql
db = pymysql.connect("localhost","root","","MyFirst" )
cursor = db.cursor()
#向數據庫中添加內容
sql = """INSERT INTO EMPLOYEE2(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
# 執行sql語句
cursor.execute(sql)
# 提交到數據庫執行
db.commit()
except:
# 如果發生錯誤則回滾
db.rollback()
# 關閉數據庫連接
db.close()
對于mysql來說,如果使用支持事務的存儲引擎,那么每次操作后,commit是必須的,否則不會真正寫入數據庫,對應rollback可以進行相應的回滾,但是commit后是無法再rollback的。commit() 可以在執行很多sql指令后再一次調用,這樣可以適當提升性能。
二、數據庫查詢操作
import pymysql
# 打開數據庫連接
db = pymysql.connect("localhost","root","","MyFirst" )
# 使用cursor()方法獲取操作游標
cursor = db.cursor()
# SQL 查詢語句
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > '%d'" % (1000)
try:
# 執行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]
# 打印結果
print ("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
(fname, lname, age, sex, income ))
except:
print ("Error: unable to fetch data")
# 關閉數據庫連接
db.close()
關鍵語句:
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > '%d'" % (1000)
三、數據庫更新操作:
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1
WHERE SEX = '%c'" % ('M')
四、刪除操作:
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1
WHERE SEX = '%c'" % ('M')