SQLite 数据库 Python 驱动 sqlite3 使用指南

SQLite 数据库阿木 发布于 9 天前 3 次阅读


Python 驱动(sqlite3)使用指南

SQLite 是一个轻量级的数据库引擎,它不需要服务器进程,并且支持标准的 SQL 语法。Python 内置的 sqlite3 模块提供了一个简单的接口来操作 SQLite 数据库。本文将详细介绍如何使用 sqlite3 模块来创建、查询、更新和删除数据库中的数据。

环境准备

在开始之前,请确保您的 Python 环境已经安装。sqlite3 是 Python 的标准库之一,因此不需要额外安装。

连接到 SQLite 数据库

我们需要创建一个数据库连接。以下是如何使用 sqlite3 模块连接到 SQLite 数据库的示例代码:

python

import sqlite3

连接到 SQLite 数据库


如果数据库不存在,将会自动创建


conn = sqlite3.connect('example.db')

创建一个 cursor 对象使用 SQL 语句


cursor = conn.cursor()


在这个例子中,我们连接到了一个名为 `example.db` 的数据库。如果该数据库不存在,sqlite3 会自动创建它。

创建表

接下来,我们将创建一个表来存储数据。以下是如何使用 sqlite3 创建表的示例代码:

python

创建一个表


cursor.execute('''


CREATE TABLE IF NOT EXISTS users (


id INTEGER PRIMARY KEY,


name TEXT NOT NULL,


email TEXT NOT NULL UNIQUE


)


''')


在这个例子中,我们创建了一个名为 `users` 的表,它有三个字段:`id`、`name` 和 `email`。`id` 字段是主键,`name` 和 `email` 字段不能为空,且 `email` 字段是唯一的。

插入数据

现在我们已经有了表,我们可以插入数据到表中。以下是如何使用 sqlite3 插入数据的示例代码:

python

插入数据


cursor.execute('INSERT INTO users (name, email) VALUES (?, ?)', ('Alice', 'alice@example.com'))


cursor.execute('INSERT INTO users (name, email) VALUES (?, ?)', ('Bob', 'bob@example.com'))

提交事务


conn.commit()


在这个例子中,我们向 `users` 表中插入了两个用户的数据。`?` 是一个占位符,用于防止 SQL 注入攻击。

查询数据

查询数据是数据库操作中最常见的任务之一。以下是如何使用 sqlite3 查询数据的示例代码:

python

查询数据


cursor.execute('SELECT FROM users')


rows = cursor.fetchall()

打印查询结果


for row in rows:


print(row)


在这个例子中,我们查询了 `users` 表中的所有数据,并将结果存储在 `rows` 变量中。然后,我们遍历 `rows` 并打印每一行。

更新数据

更新数据是修改数据库中现有记录的过程。以下是如何使用 sqlite3 更新数据的示例代码:

python

更新数据


cursor.execute('UPDATE users SET email = ? WHERE name = ?', ('alice_new@example.com', 'Alice'))

提交事务


conn.commit()


在这个例子中,我们将 Alice 的电子邮件地址更新为 `alice_new@example.com`。

删除数据

删除数据是从数据库中移除记录的过程。以下是如何使用 sqlite3 删除数据的示例代码:

python

删除数据


cursor.execute('DELETE FROM users WHERE name = ?', ('Bob',))

提交事务


conn.commit()


在这个例子中,我们删除了名为 Bob 的用户记录。

关闭连接

完成数据库操作后,我们应该关闭数据库连接。以下是如何关闭 sqlite3 连接的示例代码:

python

关闭连接


cursor.close()


conn.close()


高级特性

事务

SQLite 支持事务,这意味着你可以将多个 SQL 语句组合成一个事务,以确保数据的一致性。以下是如何使用事务的示例代码:

python

开始一个事务


conn.execute('BEGIN TRANSACTION;')

执行多个 SQL 语句


cursor.execute('INSERT INTO users (name, email) VALUES (?, ?)', ('Charlie', 'charlie@example.com'))


cursor.execute('UPDATE users SET email = ? WHERE name = ?', ('Alice', 'alice_new@example.com'))

提交事务


conn.commit()


在这个例子中,我们首先开始了一个事务,然后执行了两个 SQL 语句,最后提交了事务。

错误处理

在执行 SQL 语句时,可能会遇到错误。以下是如何处理错误的示例代码:

python

try:


cursor.execute('SELECT FROM non_existent_table')


except sqlite3.Error as e:


print(f"An error occurred: {e.args[0]}")


在这个例子中,我们尝试查询一个不存在的表,这将引发一个错误。我们使用 `try-except` 块来捕获并处理这个错误。

总结

SQLite 是一个功能强大的轻量级数据库,而 sqlite3 是 Python 中操作 SQLite 数据库的强大工具。您应该已经了解了如何使用 sqlite3 创建、查询、更新和删除数据。希望这篇文章能帮助您更好地使用 SQLite 和 sqlite3 模块。