在本节中,我们将学习如何在 Python 中使用 SQLite 数据库。SQLite 是一种轻量级的数据库,它不需要独立的服务器进程,可以直接保存在文件中,非常适合嵌入式系统或小型应用程序的开发。
1. 什么是 SQLite
SQLite
是一个自给自足的、无服务器的、零配置的、跨平台的 SQL 数据库引擎。它的主要特点包括:
- 轻量级:SQLite 的便携性和小型化使其非常便于使用。
- 跨平台:支持多种操作系统。
- 无服务器:无需单独的服务器进程。
2. 安装和导入
在 Python 中使用 SQLite,无需额外安装,因为 Python 内置了对 SQLite 的支持。你可以直接导入 sqlite3
模块。
1 | import sqlite3 |
3. 创建数据库连接
通过 sqlite3.connect()
方法,我们可以创建一个连接到 SQLite 数据库的对象。如果数据库文件不存在,将会自动创建一个新的数据库文件。
1 | connection = sqlite3.connect('example.db') |
这里,example.db
是数据库文件的名称。
4. 创建游标
通过连接对象,我们可以获取一个游标对象,该对象允许我们执行 SQL 查询和命令。
1 | cursor = connection.cursor() |
5. 创建表
使用 CREATE TABLE
SQL 语句来创建表。下面是创建一个名为 users
的表的示例:
1 | cursor.execute(''' |
此 SQL 语句会创建一个包含 id
、name
和 age
的表,其中 id
是主键。
6. 插入数据
使用 INSERT INTO
语句可以向表中插入数据。以下是插入数据的示例:
1 | cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Alice", 30)) |
在这里,我们使用了占位符 ?
来防止 SQL 注入。
7. 查询数据
可以使用 SELECT
语句从表中查询数据。以下是查询表中所有用户的示例:
1 | cursor.execute("SELECT * FROM users") |
fetchall()
方法会返回所有查询结果,而 for
循环将遍历每一行。
8. 更新数据
使用 UPDATE
语句可以更新表中的记录。以下是将用户 Alice
的年龄更新为 31 的示例:
1 | cursor.execute("UPDATE users SET age = ? WHERE name = ?", (31, "Alice")) |
9. 删除数据
要删除数据库中的记录,可以使用 DELETE
语句。以下是删除用户 Bob
的示例:
1 | cursor.execute("DELETE FROM users WHERE name = ?", ("Bob",)) |
10. 提交事务
使用 SQLite 时,所有修改(插入、更新、删除)都需要提交到数据库。可以调用 commit()
方法:
1 | connection.commit() |
11. 关闭连接
在操作完成后,别忘了关闭游标和连接:
1 | cursor.close() |
12. 完整示例
下面是一个完整的例子,演示上述所有步骤:
1 | import sqlite3 |
13. 小结
通过本节的学习,我们了解了如何在 Python 中使用 SQLite
进行基本的数据库操作,包括创建数据库、创建表、插入、查询、更新和删除数据。SQLite 是一个非常强大的工具,适用于轻量级应用开发。