首页 > Python基础教程 >
-
python向MySQL数据库插入数据的操作方法
这篇文章主要介绍了python向MySQL数据库插入数据,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
我在这里用的是python中pymysql连接MySQL数据库,如果电脑中没有安装pymysql,可以直接再命令行通过 pip install pymysql 安装
一、通过python脚本向mysql数据库插入单条数据
写sql语句时,不管字段为什么类型,占位符统一使用%s
这里记录两种插入单条数据的方式:
1、直接用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()
2、将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数据库批量插入数据
这里记录两种批量插入数据的方式:
1、通过execute,用for语句循环
#导入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()
2、通过executemany,数据的格式必须为list[tuple(),tuple(),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数据库插入数据的文章就介绍到这了,更多相关python数据库插入数据内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
原文链接:https://blog.csdn.net/HBT036017/article/details/104930595