Python SQLite 插入数据

Python SQLite 插入数据

Python SQLite 插入数据

介绍

SQLite 是一个嵌入式关系型数据库管理系统,它不像传统的服务器-客户端模式的数据库管理系统,而是将数据库引擎与应用程序捆绑在一起。Python 提供了内置的 sqlite3 模块,用于与 SQLite 数据库进行交互。

本文将详细介绍如何使用 Pythonsqlite3 模块来连接 SQLite 数据库,并向数据库中插入数据。

准备工作

在开始之前,请确保在您的系统上已经安装了 Python。您可以使用以下命令来检查您的系统上是否已经安装了 Python:

python --version
Bash

如果您已经安装了 Python,将会显示您的 Python 版本号。如果没有安装,请从 Python 官方网站 下载并安装 Python。

另外,Python 的 sqlite3 模块是默认安装在 Python 标准库中的,所以您不需要额外安装任何模块。

连接到 SQLite 数据库

在开始插入数据之前,我们需要首先连接到 SQLite 数据库。要连接到数据库,我们需要使用 sqlite3 模块的 connect() 方法,该方法接受一个参数作为数据库文件的路径。如果数据库文件不存在,connect() 方法将会自动创建该文件。

下面是一个连接到 SQLite 数据库的示例:

import sqlite3

# 连接到 SQLite 数据库
conn = sqlite3.connect('mydatabase.db')
Python

创建数据表

在向 SQLite 数据库中插入数据之前,我们需要先创建一个数据表用于存储数据。数据表通过执行 SQL 语句来创建。SQLite 中使用的 SQL 语法与大多数关系型数据库管理系统相同。

下面是一个创建数据表的示例,该表将用于存储用户信息:

import sqlite3

# 连接到 SQLite 数据库
conn = sqlite3.connect('mydatabase.db')

# 创建数据表
conn.execute('''CREATE TABLE IF NOT EXISTS users
                (id INTEGER PRIMARY KEY AUTOINCREMENT,
                 name TEXT NOT NULL,
                 age INTEGER NOT NULL,
                 email TEXT NOT NULL);''')

# 提交事务
conn.commit()
Python

以上代码将创建一个名为 users 的数据表,该表包含 idnameageemail 四个列。其中,id 列为主键,自动递增;nameageemail 列为文本类型,不允许为空。

如果数据库文件中已经存在名为 users 的数据表,CREATE TABLE IF NOT EXISTS 语句将会跳过创建操作。

插入数据

有了数据表之后,我们可以使用 INSERT INTO 语句向数据表中插入数据。SQLite 中的 INSERT INTO 语句用于插入新的行。

下面是一个向 users 表中插入数据的示例:

import sqlite3

# 连接到 SQLite 数据库
conn = sqlite3.connect('mydatabase.db')

# 插入数据
conn.execute("INSERT INTO users (name, age, email) VALUES ('Alice', 25, 'alice@example.com')")
conn.execute("INSERT INTO users (name, age, email) VALUES ('Bob', 30, 'bob@example.com')")

# 提交事务
conn.commit()
Python

以上代码将向 users 表中插入两条数据。每次插入数据都需要执行一次 INSERT INTO 语句。在 VALUES 子句中,您需要按照数据表的列顺序提供相应的值。

执行插入操作的返回值

当执行插入操作时,execute() 方法将会返回一个 cursor 对象。您可以使用此对象来获取插入操作的返回值。

在 SQLite 中,每一行数据都有一个唯一的 rowid,它会自动分配给插入的每一行。如果您没有为主键列指定值,rowid 也会自动生成。使用 lastrowid 属性可以获取最后一次插入操作的 rowid 值。

下面是一个获取最后插入行的 rowid 的示例:

import sqlite3

# 连接到 SQLite 数据库
conn = sqlite3.connect('mydatabase.db')

# 插入数据
conn.execute("INSERT INTO users (name, age, email) VALUES ('Alice', 25, 'alice@example.com')")

# 获取最后插入行的 rowid
last_row_id = conn.lastrowid

# 提交事务
conn.commit()

print("最后插入行的 rowid:", last_row_id)
Python

运行以上代码将输出最后插入行的 rowid 值。

示例:使用循环插入多条数据

通常,在实际开发中,我们需要向数据库中插入多条数据。可以使用循环来逐条插入多条数据。

下面是一个使用循环插入多条数据的示例:

import sqlite3

# 连接到 SQLite 数据库
conn = sqlite3.connect('mydatabase.db')

# 数据列表
data = [
    ('Alice', 25, 'alice@example.com'),
    ('Bob', 30, 'bob@example.com'),
    ('Charlie', 35, 'charlie@example.com'),
    ('Dave', 40, 'dave@example.com')
]

# 循环插入数据
for item in data:
    conn.execute("INSERT INTO users (name, age, email) VALUES (?,?,?)", item)

# 提交事务
conn.commit()
Python

以上代码将使用循环逐条插入 data 列表中的数据。

结论

本文详细介绍了如何使用 Python 的 sqlite3 模块来连接 SQLite 数据库,并向数据库中插入数据。通过了解如何连接数据库、创建数据表、插入数据以及获取插入操作的返回值,您可以开始使用 SQLite 数据库储存和管理数据了。

SQLite 还有很多其他的功能,例如查询数据、更新数据和删除数据等。如果您对 SQLite 的更多功能感兴趣,可以查阅官方文档或者参考其他教程。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册