1、executemany()方法
pymysql的executemany()方法,在一次数据库的IO操作中,可以插入多条记录。在大量数据传输中,它相比于execute()方法,不仅方便,而且提高了效率。
2、语法
executemany('sql',data_list)
#sql就是我们要执行的sql语句
#data_list是一个包含多行数据的列表,每行数据可以用列表[]包裹,也可以用元祖()包裹
#比如:[(1, '小明', 10), (2, '小白', 20)]
#或:[['Ada', 100, 92], ['Jack', 89, 97]]
3、案例
import pymysql
data01 = [['1', 'Ada', '23'],
['2', 'Black', '19'],
['3', 'Tim', '30']]
data02 = [('4', 'Green', '25'), ('5', 'Bai', '32')]
db = pymysql.connect(host = '127.0.0.1',
port = 3306,
user = 'root',
password = '19970928',
database = 'stu',
charset = 'utf8')
cur = db.cursor()
try:
sql = 'insert into test_table \
values(%s, %s, %s);'
cur.executemany(sql, data01)
cur.executemany(sql, data02)
db.commit()
print('成功...')
except Exception as e:
db.rollback()
print("错误信息:", e)
cur.close()
db.close()
4、区别
![](https://img-blog.csdnimg.cn/20200420200950524.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0NDIxNzk2,size_16,color_FFFFFF,t_70)
可以看出明显的区别, 如果需要批量插入数据库,还是用 executemany方法 这个和execute 不是一个数量级.
如果只是插入比较少的数量量 用 exectue 比较好点.
总的来说execute与executemany功能差不多,只不过后者比前者速度快一些。