网站建设基础型,山东大标网络,小小影院 电视剧免费,网页设计说明万能模板SQLite 是 Python 内置的轻量级数据库#xff0c;无需单独的服务器进程#xff0c;使用文件存储数据。它适合小型应用、原型开发或嵌入式系统#xff0c;支持标准 SQL 语法。下面详细介绍 sqlite3 模块的用法和示例。1. 连接数据库使用 sqlite3.connect() 创建数据库连接。如…SQLite 是 Python 内置的轻量级数据库无需单独的服务器进程使用文件存储数据。它适合小型应用、原型开发或嵌入式系统支持标准 SQL 语法。下面详细介绍sqlite3模块的用法和示例。1. 连接数据库使用sqlite3.connect()创建数据库连接。如果数据库不存在会自动创建。import sqlite3 # 连接到数据库如果不存在则创建 conn sqlite3.connect(example.db) # 或使用内存数据库: sqlite3.connect(:memory:) # 创建游标对象执行 SQL 命令 cursor conn.cursor()2. 创建表使用CREATE TABLE语句创建表需调用conn.commit()提交事务。# 创建 users 表 cursor.execute( CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER, email TEXT UNIQUE ) ) conn.commit() # 提交事务3. 插入数据使用INSERT INTO插入单条或多条记录。# 插入单条记录 cursor.execute(INSERT INTO users (name, age, email) VALUES (?, ?, ?), (Alice, 30, aliceexample.com)) # 插入多条记录使用 executemany users_data [ (Bob, 25, bobexample.com), (Charlie, 35, charlieexample.com) ] cursor.executemany(INSERT INTO users (name, age, email) VALUES (?, ?, ?), users_data) conn.commit() # 提交事务4. 查询数据使用SELECT语句查询数据通过fetchone()、fetchall()或fetchmany()获取结果。# 查询所有记录 cursor.execute(SELECT * FROM users) all_users cursor.fetchall() print(所有用户:, all_users) # 查询单条记录 cursor.execute(SELECT * FROM users WHERE name ?, (Alice,)) user cursor.fetchone() print(Alice:, user) # 使用 fetchmany 获取部分结果 cursor.execute(SELECT * FROM users) some_users cursor.fetchmany(2) print(前两条记录:, some_users)5. 更新和删除数据使用UPDATE和DELETE语句修改数据需提交事务。# 更新记录 cursor.execute(UPDATE users SET age ? WHERE name ?, (31, Alice)) # 删除记录 cursor.execute(DELETE FROM users WHERE age ?, (30,)) conn.commit() # 提交事务6. 参数化查询使用参数化查询?占位符防止 SQL 注入。# 安全示例使用参数化查询 name Charlie cursor.execute(SELECT * FROM users WHERE name ?, (name,)) # 不安全示例避免这样写 # cursor.execute(fSELECT * FROM users WHERE name {name})7. 事务处理SQLite 默认使用自动提交模式可通过conn.commit()和conn.rollback()管理事务。try: # 开始事务 cursor.execute(INSERT INTO users (name, email) VALUES (?, ?), (David, davidexample.com)) # 模拟错误 # 1 / 0 # 取消注释此行触发异常 conn.commit() # 提交事务 except Exception as e: print(fError: {e}) conn.rollback() # 回滚事务8. 高级特性8.1 自定义函数def multiply(a, b): return a * b conn.create_function(multiply, 2, multiply) cursor.execute(SELECT multiply(3, 4)) print(cursor.fetchone()) # 输出: (12,)8.2 行对象Row Objectsconn.row_factory sqlite3.Row cursor.execute(SELECT * FROM users) row cursor.fetchone() print(row[name], row[age]) # 通过列名访问数据9. 关闭连接操作完成后关闭游标和连接。cursor.close() conn.close()完整示例用户管理系统下面是一个完整的用户管理系统示例包含增删改查功能import sqlite3 def create_connection(): conn sqlite3.connect(users.db) conn.row_factory sqlite3.Row return conn def create_table(): conn create_connection() with conn: conn.execute( CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE, age INTEGER ) ) def add_user(name, email, age): conn create_connection() with conn: try: conn.execute(INSERT INTO users (name, email, age) VALUES (?, ?, ?), (name, email, age)) return True except sqlite3.IntegrityError: print(fError: Email {email} already exists.) return False def get_all_users(): conn create_connection() with conn: return conn.execute(SELECT * FROM users).fetchall() def update_user_age(user_id, new_age): conn create_connection() with conn: conn.execute(UPDATE users SET age ? WHERE id ?, (new_age, user_id)) def delete_user(user_id): conn create_connection() with conn: conn.execute(DELETE FROM users WHERE id ?, (user_id,)) # 使用示例 if __name__ __main__: create_table() add_user(Eve, eveexample.com, 28) users get_all_users() for user in users: print(dict(user)) # 打印为字典格式注意事项线程安全SQLite 支持多线程读但写入时需加锁默认模式。事务管理批量操作时使用事务可显著提高性能。大数据处理SQLite 适合中小型数据集大数据量建议使用 PostgreSQL 或 MySQL。通过上述示例你可以掌握sqlite3模块的基本用法。如需更复杂的功能可以结合 Python 的其他库如 Pandas进行数据处理。