下面是Python连接数据库并批量插入包含日期记录的操作的完整攻略:
1. 连接数据库
Python连接数据库需要使用到相应的的库,比如MySQL数据库需要使用pymysql
库。下面是一个连接MySQL数据库的样例代码:
import pymysql
#连接数据库
db = pymysql.connect(host = 'localhost', port = 3306, user = 'root', passwd = '123456', db = 'test',charset = 'utf8mb4')
#创建游标对象
cursor = db.cursor()
在连接数据库过程中需要设置相应的参数,比如主机地址、用户名等等。连接成功之后需要创建游标对象,以便后续进行数据库操作。
2. 数据库表结构
在进行数据库操作之前,需要先创建相应的数据库表,比如下面是一个名为tb_record
的表结构,包含时间记录和相应的记录值:
CREATE TABLE `tb_record` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`record_time` datetime NOT NULL,
`record_value` decimal(10,2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
3. 批量插入数据
下面是一个插入数据到tb_record
表的样例代码,每次插入一条记录:
import datetime
#假设需要插入5条数据
data = [(datetime.datetime(2020, 1, 1, 0, 0, 0), 10.0),
(datetime.datetime(2020, 1, 2, 0, 0, 0), 20.0),
(datetime.datetime(2020, 1, 3, 0, 0, 0), 30.0),
(datetime.datetime(2020, 1, 4, 0, 0, 0), 40.0),
(datetime.datetime(2020, 1, 5, 0, 0, 0), 50.0)]
#使用循环逐个插入
for dt, value in data:
sql = "INSERT INTO tb_record (record_time, record_value) VALUES ('{}', {})".format(dt, value)
cursor.execute(sql)
#提交事务
db.commit()
上面的样例代码每次插入一条记录,插入5条记录需要进行5次插入操作。但是当插入的记录比较多时,逐条插入的效率比较低下。可以使用批量插入的方式来提高效率,比如下面是批量插入的样例代码:
import datetime
#假设需要插入5条数据
data = [(datetime.datetime(2020, 1, 1, 0, 0, 0), 10.0),
(datetime.datetime(2020, 1, 2, 0, 0, 0), 20.0),
(datetime.datetime(2020, 1, 3, 0, 0, 0), 30.0),
(datetime.datetime(2020, 1, 4, 0, 0, 0), 40.0),
(datetime.datetime(2020, 1, 5, 0, 0, 0), 50.0)]
#构造多条插入语句
sql = "INSERT INTO tb_record (record_time, record_value) VALUES (%s, %s)"
values = [(dt, value) for dt, value in data]
#批量插入
cursor.executemany(sql, values)
#提交事务
db.commit()
上面的样例代码使用executemany
函数进行批量插入,将多个记录值构造成列表,并使用executemany
函数一次性插入到数据库中。
总结
以上就是Python连接数据库并批量插入包含日期记录的操作的完整攻略,通过连接数据库、创建游标对象以及批量插入等步骤,可以很方便地进行数据库操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python连接数据库并批量插入包含日期记录的操作 - Python技术站