SQLite批量插入
在SQLite中,批量插入数据通常比单条插入更高效。这是因为它减少了数据库I/O操作的次数。以下是一个使用SQLite的exec()
函数执行批量插入的示例:
import sqlite3
# 连接到SQLite数据库
# 如果数据库不存在,会自动在当前目录创建
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS stocks(
symbol text,
price real,
volume integer
)
''')
# 准备批量插入的SQL语句
# 使用问号?占位符
insert_statement = cursor.prepare('''
INSERT INTO stocks (symbol, price, volume)
VALUES (?, ?, ?)
''')
# 要插入的数据
stocks_data = [
('GOOG', 1207.74, 39040422),
('AAPL', 279.49, 35631177),
('FB', 266.48, 30183177),
# ... 更多数据
]
# 执行批量插入
cursor.executemany(insert_statement, stocks_data)
# 提交事务
conn.commit()
# 关闭连接
conn.close()
这段代码首先创建了一个表(如果表不存在的话),然后准备了一个批量插入的SQL语句,并使用executemany()
方法来执行这个批量插入。这个方法接受一个准备好的SQL语句和一个包含数据元组的列表,它会自动为列表中的每个元组生成并执行SQL语句。最后,执行commit()
来提交事务,并关闭数据库连接。
评论已关闭