pythonsqlite3批量插入
时间: 2023-06-23 21:49:34 浏览: 136
可以使用以下代码实现Python中使用sqlite3进行批量插入数据:
```python
import sqlite3
# 连接数据库
conn = sqlite3.connect('example.db')
c = conn.cursor()
# 创建数据表
c.execute('''CREATE TABLE IF NOT EXISTS test_table
(id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL);''')
# 批量插入数据
data = [(1, 'Alice', 25), (2, 'Bob', 30), (3, 'Charlie', 35)]
c.executemany('INSERT INTO test_table VALUES (?, ?, ?)', data)
# 提交更改
conn.commit()
# 关闭数据库连接
conn.close()
```
在上面的代码中,首先使用`sqlite3.connect()`函数连接数据库,然后使用`c.execute()`函数创建数据表。接着,使用`c.executemany()`函数进行批量插入数据,其中的`?`表示占位符,可以通过元组或列表来传递插入的数据。最后,使用`conn.commit()`函数提交更改,关闭数据库连接。
相关问题
python sqlite数据库批量操作
在Python中,SQLite是一种轻量级的关系型数据库,可以用于存储简单的数据。对于批量操作,你可以使用sqlite3模块提供的`executescript()`方法来进行一次性插入、更新或删除多条记录。下面是一个例子:
```python
import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('example.db')
# 创建一个游标对象
cursor = conn.cursor()
# 批量操作脚本示例 (假设有一个名为`students`的表,有`id`, `name`, `age`字段)
script = '''
BEGIN TRANSACTION;
INSERT INTO students (id, name, age) VALUES
(1, 'Alice', 18),
(2, 'Bob', 20),
(3, 'Charlie', 19);
UPDATE students SET age = 21 WHERE id = 2;
DELETE FROM students WHERE id = 1;
COMMIT;
'''
# 执行批量SQL
cursor.executescript(script)
# 提交事务
conn.commit()
# 关闭连接
conn.close()
```
在这个例子中,`executescript()`一次性处理了所有的SQL语句,提高了效率。
python 批量向sqlite3数据库插入数据
在Python中,可以使用sqlite3模块来批量插入数据到SQLite数据库。以下是一个简单的例子:
```python
import sqlite3
# 连接到SQLite数据库(假设数据库名为'database.db')
conn = sqlite3.connect('database.db')
# 创建一个游标对象
cursor = conn.cursor()
# 定义要插入的数据列表,例如是一个字典列表
data_list = [
{"id": 1, "name": "Alice", "age": 25},
{"id": 2, "name": "Bob", "age": 30},
# 更多数据...
]
# 使用 executemany() 方法批量插入数据
insert_query = "INSERT INTO table_name (id, name, age) VALUES (?, ?, ?)"
cursor.executemany(insert_query, data_list)
# 提交事务
conn.commit()
# 关闭连接
conn.close()
```
这里的关键是`executemany()`函数,它一次执行多次相同的SQL查询,适用于批量插入数据。
阅读全文