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')