目录
SQLite3 是一种轻量级的数据库引擎,它不需要独立的服务器进程,可以直接读写磁盘上的数据库文件。由于其简单易用和高效的特性,SQLite3 成为了许多应用程序和开发者在开发阶段的首选数据库。Python 的 sqlite3 模块提供了对 SQLite3 数据库的直接支持,允许开发者在 Python 环境中轻松地进行数据库操作。本文将详细讲解如何使用 Python 的 sqlite3 模块进行数据库的基本操作,包括连接数据库、执行 SQL 语句、处理查询结果等,并辅以丰富的代码和案例,帮助新手朋友快速入门。
一、引言
1.1 SQLite3 简介
SQLite3 是一种开源的嵌入式数据库管理系统,它实现了自包含的、高可靠的、具有完整事务处理的 SQL 数据库引擎。SQLite3 最大的特点是轻量级,无需配置、无需服务器即可运行,数据库文件直接存储在磁盘上,非常适合用于小型或中型应用程序,以及作为原型开发阶段的数据库。
1.2 Python sqlite3 模块
Python 的 sqlite3 模块提供了对 SQLite3 数据库的接口,使得 Python 开发者可以方便地执行 SQL 语句、管理数据库。该模块是 Python 的标准库之一,因此无需额外安装即可使用。
二、连接数据库
2.1 导入 sqlite3 模块
首先,需要导入 Python 的 sqlite3 模块。
import sqlite3
2.2 连接数据库
使用 sqlite3.connect() 方法可以连接到 SQLite3 数据库。如果指定的数据库文件不存在,SQLite 会自动创建一个新的数据库文件。
# 连接到SQLite数据库
# 数据库文件是my_database.db,如果文件不存在,会自动在当前目录创建
conn = sqlite3.connect('my_database.db')
2.3 创建游标对象
游标(Cursor)对象用于执行 SQL 语句并获取结果。通过连接对象的 cursor() 方法可以创建一个游标对象。
# 创建游标对象
cursor = conn.cursor()
三、执行 SQL 语句
3.1 创建表
使用游标对象的 execute() 方法可以执行 SQL 语句。以下是一个创建表的示例:
# 创建表
create_table_sql = """
CREATE TABLE IF NOT EXISTS student (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER NOT NULL
);
"""
cursor.execute(create_table_sql)
# 提交事务
conn.commit()
3.2 插入数据
插入数据同样使用 execute() 方法,并可以传入参数来避免 SQL 注入的风险。
# 插入单条数据
insert_sql = "INSERT INTO student (name, age) VALUES (?, ?)"
cursor.execute(insert_sql, ('Alice', 20))
# 插入多条数据
insert_many_sql = "INSERT INTO student (name, age) VALUES (?, ?)"
students = [('Bob', 22), ('Charlie', 23)]
cursor.executemany(insert_many_sql, students)
# 提交事务
conn.commit()
3.3 查询数据
查询数据后,可以使用游标对象的 fetchall()、fetchone() 或 fetchmany(size) 方法来获取查询结果。
# 查询所有数据
query_sql = "SELECT * FROM student"
cursor.execute(query_sql)
results = cursor.fetchall()
for row in results:
print(row)