Python使用PyMySQL向MySQL插入数据的完整指南
本文详细介绍如何使用Python的PyMySQL库向MySQL数据库插入数据。内容涵盖单条数据插入的两种写法(直接执行与占位符)、批量插入的循环与executemany方法,以及游标对象的常用执行和结果获取命令,帮助开发者高效完成数据库交互。
本文示例基于Python中的pymysql库连接MySQL数据库。若环境中尚未安装该库,可通过命令行执行 pip install pymysql 进行安装。
一、通过Python脚本向MySQL数据库插入单条数据
编写SQL语句时,无论字段数据类型如何,占位符统一使用%s。本文介绍两种插入单条数据的方法:第一种是直接调用execute方法执行SQL语句。
#导入pymysql包
import pymysql
# 创建数据库连接
conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="test1" )
#获取一个游标对象
cursor=conn.cursor()
#执行数据库插入操作
cursor.execute('insert into student(id,name,age) values (123456,"tom",12)')
#提交
conn.commit()
#关闭连接
conn.close()
cursor.close()第二种方法是将SQL语句独立出来,在语句中使用%s作为占位符,参数以元组形式传递。
#导入pymysql包
import pymysql
# 创建数据库连接
conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="test1" )
#获取一个游标对象
cursor=conn.cursor()
#sql语句中,用%s做占位符,参数用一个元组
sql="insert into student values(%s,%s,%s)"
param=(23456,'lilei',20)
#执行数据库插入
cursor.execute(sql,param)
#提交
conn.commit()
#关闭连接
conn.close()
cursor.close()二、通过Python脚本向MySQL数据库批量插入数据
本文介绍两种批量插入数据的方式:第一种是利用for循环配合execute方法逐条插入。
#导入pymysql包
import pymysql
# 创建数据库连接
conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="test1" )
#获取一个游标对象
cursor=conn.cursor()
#设置参数i,for语句循环
for i in range(1,10):
param=str(i)
sql="insert into student values(%s,'yy',20)"
cursor.execute(sql,param)
conn.commit()
#关闭连接
conn.close()
cursor.close()第二种方式是通过executemany方法,此时数据格式必须为list[tuple(), tuple(), ...]或tuple(tuple(), tuple(), ...)的形式。
import pymysql
# 打开数据库连接
conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="test1" )
# 使用cursor()方法获取操作游标
cursor = conn.cursor()
#批量插入数据
sql="insert into student values(%s,%s,%s)"
#每一个值都作为一个元组,整个参数集作为一个元组
param=((111111,'haha',13),(22222,'hehe',34))
#或者每一个值作为元组,整个参数集作为list :param=[(111111,'haha',13),(22222,'hehe',34)]
#使用executemany方法批量插入数据
cursor.executemany(sql,param)
#提交
conn.commit()
#关闭
conn.close()
cursor.close()三、cursor执行命令的方法
1、callproc(self, procname, args):用于执行存储过程,接收存储过程名和参数列表,返回受影响的行数。2、execute(self, query, args):执行单条SQL语句,接收SQL语句本身和参数列表,返回受影响的行数。3、executemany(self, query, args):执行单条SQL语句,但重复应用参数列表中的参数,返回受影响的行数。4、nextset(self):移动到下一个结果集。
四、cursor接受返回值的方法
1、fetchall(self):接收并返回所有的结果行。2、fetchmany(self, size=None):接收size条返回结果行;若size大于实际返回的行数,则返回cursor.arraysize条数据。3、fetchone(self):返回一条结果行。4、scroll(self, value, mode='relative'):移动指针至指定行。若mode为'relative',表示从当前行移动value行;若mode为'absolute',表示从结果集的第一行移动value行。
五、cursor执行查询语句并返回结果
#执行查询的操作
cursor.execute("select * from cdinfo")
#用fetcall方法获取查询返回的全部结果,将结果保存到tup,每条结果都是元组类型,所有的元组组成了一个元组集
tup=cursor.fetchall()
print(tup)#输出整个结果
print tup[0][3]#输出元组集中,第一个元组的第四个元素至此,关于Python向MySQL数据库插入数据的介绍已完成。如需了解更多相关内容,可搜索本站往期文章或继续浏览后续文章,感谢大家的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













