Python 操作 SQLite 基础入门
数据库操作是现代应用程序的核心功能之一。但并非所有项目都需要 MySQL 或 PostgreSQL 这样复杂且资源消耗大的数据库系统。对于小型项目、原型开发或本地应用,Python 内置的 SQLite 数据库管理系统是绝佳选择。
在本教程中,我们将深入讲解 Python 操作 SQLite 的核心原理。你将学会执行数据库的基本操作,并通过实战案例掌握如何使用 Python 在 SQLite 中执行 UPDATE 更新命令。
什么是 SQLite?它有哪些优势?
SQLite 是一款轻量级的内嵌式关系型数据库。它无需独立服务器即可运行,整个数据库直接存储在计算机磁盘上的一个文件中。
SQLite 的主要优势:
- 通过 sqlite3 模块内置于 Python 标准库中
- 无需安装和配置独立服务器
- 非常适合本地应用和移动端解决方案
- 使用简单,小数据量下运行速度极快
- 支持标准 SQL 查询
- 跨平台且易于移植
- 运行稳定可靠
连接 SQLite 数据库
操作 SQLite 需要使用标准库中的 sqlite3 模块。无需额外安装,因为它已包含在 Python 的标准发行版中。
import sqlite3
# 创建或连接数据库
conn = sqlite3.connect('example.db')
# 创建游标对象,用于执行 SQL 查询
cursor = conn.cursor()
执行上述代码后,会在当前目录下创建 example.db 数据库文件。如果文件已存在,则会连接到现有数据库。
创建数据库结构
创建数据表
在 SQLite 中创建表使用 CREATE TABLE 命令。以下示例创建一个用于存储用户信息的表:
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
email TEXT UNIQUE
)
''')
conn.commit()
此示例创建了一个包含四个字段的 users 表:
- id — 自增的唯一标识符
- name — 用户名(必填字段)
- age — 用户年龄
- email — 电子邮箱(唯一值)
创建索引以优化性能
为提高查询性能,可以创建索引:
cursor.execute('''
CREATE INDEX IF NOT EXISTS idx_users_email ON users(email)
''')
cursor.execute('''
CREATE INDEX IF NOT EXISTS idx_users_age ON users(age)
''')
conn.commit()
数据操作
向表中插入数据
使用 INSERT 命令插入单条记录:
cursor.execute('''
INSERT INTO users (name, age, email)
VALUES (?, ?, ?)
''', ('Alice', 30, 'alice@example.com'))
conn.commit()
批量插入数据
使用 executemany 方法同时插入多条记录:
users_data = [
('Bob', 25, 'bob@example.com'),
('Charlie', 35, 'charlie@example.com'),
('Diana', 28, 'diana@example.com'),
('Eve', 32, 'eve@example.com')
]
cursor.executemany('''
INSERT INTO users (name, age, email)
VALUES (?, ?, ?)
''', users_data)
conn.commit()