MySQL实现一行插入多行数据(mysql一行插入多行)
MySQL实现一行插入多行数据
在日常数据库开发中,时常需要向MySQL数据库中插入多行数据。如果使用INSERT语句逐条插入,对于大量数据的情况下,效率非常低下。因此,需要使用MySQL的批量插入功能,将多行数据一次性插入到数据库当中。
在MySQL中,一行语句可以插入多行数据,方法如下:
INSERT INTO 表名 (字段1,字段2,字段3) VALUES (值1,值2,值3),(值4,值5,值6),(值7,值8,值9);
其中,INSERT INTO为插入语句,表名为要插入数据的表名,(字段1,字段2,字段3)为要插入的字段,VALUES后面的括号内为要插入的数据。在VALUES后面的括号中,每个值之间以逗号分隔,每个括号表示一行数据,因此可以一次性插入多行数据。
例如,以下代码实现了向student表中插入三条数据:
INSERT INTO student (name,age,gender) VALUES ('张三',18,'男'),('李四',19,'女'),('王五',20,'男');
在插入数据的同时,我们也可以使用Python中的MySQL驱动程序实现批量插入,代码如下:
import pymysql
# 连接MySQL数据库conn = pymysql.connect(host='localhost',user='root',password='123456',database='testdb')
# 创建一个游标对象cursor = conn.cursor()
# 批量插入语句sql = "INSERT INTO student (name,age,gender) VALUES (%s,%s,%s)"
# 批量插入的数据data = [
('张三',18,'男'), ('李四',19,'女'),
('王五',20,'男')]
# 执行批量插入cursor.executemany(sql,data)
# 提交事务conn.commit()
# 关闭游标和连接cursor.close()
conn.close()
以上代码中,我们定义了一个批量插入语句sql,同时定义了一个data列表,其中存储了要插入的多行数据。使用executemany函数执行批量插入,最后使用commit函数提交事务,关闭游标和连接。
总结
在实际开发中,插入多行数据是非常常见的需求。如果使用循环逐个插入,效率非常低下。因此,使用MySQL的批量插入功能,能够大幅提高插入数据的效率,同时加速了程序的执行速度。希望本文对大家有所帮助。