Python sqlite3一次插入多条数据

Python sqlite3一次插入多条数据

Python sqlite3一次插入多条数据

SQLite是一种轻量级的嵌入式关系型数据库,而Python自带的sqlite3库则提供了与SQLite数据库交互的功能。在实际开发中,有时候需要一次性插入多条数据到数据库中,这样可以有效提高插入数据的效率。本文将介绍如何在Python中使用sqlite3一次插入多条数据。

创建数据库和表

首先,我们需要创建一个SQLite数据库和一张表。我们可以使用sqlite3库来实现这一步骤:

# 导入sqlite3库
import sqlite3

# 连接数据库(如果不存在则会自动创建)
conn = sqlite3.connect('example.db')
c = conn.cursor()

# 创建一个表
c.execute('''CREATE TABLE IF NOT EXISTS users
             (id INTEGER PRIMARY KEY, name TEXT, email TEXT)''')

# 关闭数据库连接
conn.close()

运行上述代码后,我们在当前目录下会看到一个example.db的文件,该文件即为我们创建的SQLite数据库。

使用executemany()方法插入多条数据

在SQLite中,可以使用executemany()方法一次性插入多条数据到数据库。下面是一个示例代码,插入多条用户信息到users表中:

# 导入sqlite3库
import sqlite3

# 用户信息列表
users = [
    (1, 'Alice', 'alice@example.com'),
    (2, 'Bob', 'bob@example.com'),
    (3, 'Charlie', 'charlie@example.com')
]

# 连接数据库
conn = sqlite3.connect('example.db')
c = conn.cursor()

# 插入多条数据
c.executemany('INSERT INTO users VALUES (?, ?, ?)', users)

# 提交事务
conn.commit()

# 查询插入的数据
c.execute('SELECT * FROM users')
print(c.fetchall())

# 关闭数据库连接
conn.close()

运行上述代码后,我们可以看到插入的用户数据已经成功存储在users表中。示例代码中使用了一个包含多个用户信息的列表users,然后通过executemany()方法一次性将所有用户信息插入到数据库中。

使用占位符和字符串格式化插入多条数据

除了executemany()方法外,我们还可以使用占位符和字符串格式化来一次性插入多条数据。以下是一个示例代码:

# 导入sqlite3库
import sqlite3

# 用户信息列表
users = [
    (4, 'David', 'david@example.com'),
    (5, 'Eve', 'eve@example.com'),
    (6, 'Frank', 'frank@example.com')
]

# 连接数据库
conn = sqlite3.connect('example.db')
c = conn.cursor()

# 准备sql语句
sql = 'INSERT INTO users VALUES (?, ?, ?)'

# 插入多条数据
for user in users:
    c.execute(sql, user)

# 提交事务
conn.commit()

# 查询插入的数据
c.execute('SELECT * FROM users')
print(c.fetchall())

# 关闭数据库连接
conn.close()

运行上述代码后,同样可以看到插入的用户数据已经成功存储在users表中。示例代码中使用了占位符?和字符串格式化来构建插入语句,并通过循环的方式一次性插入多条数据。

使用with语句简化操作

为了简化代码和确保数据库连接的正确关闭,我们可以使用with语句来操作数据库。以下是一个示例代码:

# 导入sqlite3库
import sqlite3

# 用户信息列表
users = [
    (7, 'Grace', 'grace@example.com'),
    (8, 'Henry', 'henry@example.com'),
    (9, 'Ivy', 'ivy@example.com')
]

# 连接并操作数据库
with sqlite3.connect('example.db') as conn:
    c = conn.cursor()

    # 插入多条数据
    c.executemany('INSERT INTO users VALUES (?, ?, ?)', users)

    # 提交事务
    conn.commit()

    # 查询插入的数据
    c.execute('SELECT * FROM users')
    print(c.fetchall())

运行上述代码后,同样可以看到插入的用户数据已经成功存储在users表中。示例代码中使用了with语句来管理数据库连接,确保在退出代码块时正确关闭数据库连接。

通过以上示例代码,我们了解了在Python中如何使用sqlite3一次插入多条数据到数据库中。这种方式能够有效提高插入数据的效率,适用于需要批量插入数据的场景。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程