目录

第三十二章:SQLite数据库

本章目标

完成本章学习后,你将能够:

基础操作

import sqlite3
 
# 连接数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
 
# 创建表
cursor.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        email TEXT UNIQUE
    )
''')
 
# 插入数据
cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)",
               ("Alice", "alice@example.com"))
conn.commit()
 
# 查询
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
    print(row)
 
conn.close()

上下文管理器

import sqlite3
 
# 使用上下文管理器
with sqlite3.connect('example.db') as conn:
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM users")
    print(cursor.fetchall())
    # 自动提交/回滚

参数化查询

import sqlite3
 
conn = sqlite3.connect('example.db')
 
# 安全的参数化查询(防止SQL注入)
name = "Alice'; DROP TABLE users; --"
conn.execute("SELECT * FROM users WHERE name = ?", (name,))
 
# 批量插入
users = [("Bob", "bob@example.com"), ("Charlie", "charlie@example.com")]
conn.executemany("INSERT INTO users (name, email) VALUES (?, ?)", users)
conn.commit()

本章练习

1. 实现用户管理CRUD 2. 实现事务处理 3. 实现数据库迁移工具

下一章:第三十三章:MySQL数据库