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 模块。
Comments NOTHING