下面我将为你讲解如何在 Python 中操作 SQLite 数据库。
什么是 SQLite 数据库
SQLite 是一种开源的轻型关系型数据库管理系统,其特点是占用资源非常少、使用简单、速度快。它不需要独立的服务器进程,也不需要配置和管理。因此,SQLite 适用于在客户端存储数据,例如手机 App 中存储本地数据。
安装 SQLite
在 Python 中使用 SQLite 之前,需要先安装 SQLite。如果你使用的是 Mac 或者 Linux 操作系统,那么 SQLite 已经预装在系统中了。如果你使用的是 Windows 操作系统,可以在 https://www.sqlite.org/download.html 官网下载预编译的二进制文件,并进行安装。
使用 Python 操作 SQLite 数据库
Python 标准库中有一个名为 sqlite3 的模块,可以用来操作 SQLite 数据库。下面是一些 sqlite3 模块的基本用法。
连接到数据库
在操作 SQLite 数据库之前,需要先连接到数据库。可以使用 sqlite3 模块中的 connect()
方法来连接到数据库,如下所示:
import sqlite3
# 连接到数据库
conn = sqlite3.connect('example.db')
在上面的代码中,example.db
是数据库文件的名字,如果该文件不存在,它将被创建。
创建表
创建表时需要先获取到一个连接对象的游标,然后使用该游标执行 SQL 语句,从而创建表。例如,可以创建一个名为 users
的表,该表有两个字段,分别为 id
和 name
。
# 获取游标
cursor = conn.cursor()
# 创建表
cursor.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
在上面的代码中,使用 execute()
方法执行 SQL 语句创建表。
插入数据
接下来可以向刚才创建的 users
表中插入一些数据。例如,可以插入一个名为 Alice
的用户。
# 插入数据
cursor.execute('INSERT INTO users (name) VALUES (?)', ('Alice',))
在上面的代码中,使用 execute()
方法执行 SQL 语句插入数据。这里使用了占位符 ?
和元组 ( 'Alice', )
来表示插入的数据,这是为了防止 SQL 注入攻击。
查询数据
从 users
表中查询数据时,需要使用游标执行 SQL 语句,然后获取查询结果。下面是一个查询所有用户的示例:
# 查询数据
cursor.execute('SELECT * FROM users')
users = cursor.fetchall()
# 打印查询结果
for user in users:
print(user)
在上面的代码中,使用 execute()
方法执行 SQL 语句查询数据,并使用 fetchall()
方法获取查询结果。查询结果为一个列表,每个元素为一个元组,表示一条记录,可以对其进行遍历并打印出来。
关闭连接
最后,在使用完数据库之后,需要使用 close()
方法关闭连接,如下所示:
# 关闭连接
conn.close()
示例
下面是一个完整的 Python 操作 SQLite 数据库的示例,其中演示了如何创建表、插入数据和查询数据:
import sqlite3
# 连接到数据库
conn = sqlite3.connect('example.db')
# 获取游标
cursor = conn.cursor()
# 创建表
cursor.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
# 插入数据
cursor.execute('INSERT INTO users (name) VALUES (?)', ('Alice',))
cursor.execute('INSERT INTO users (name) VALUES (?)', ('Bob',))
# 查询数据
cursor.execute('SELECT * FROM users')
users = cursor.fetchall()
# 打印查询结果
for user in users:
print(user)
# 关闭连接
conn.close()
运行上面的代码之后,会输出以下内容:
(1, 'Alice')
(2, 'Bob')
另外,如果你需要使用 SQLite 数据库保存和处理大量数据,请参考一些优化 SQLite 数据库性能的技巧,例如使用索引和事务等技术。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 操作SQLite数据库详情 - Python技术站