Python知识点:如何使用SQLite,在Python开发中进行轻量级数据库操作

在Python开发中,SQLite是一种非常适合轻量级数据库操作的工具,因为它是一个嵌入式数据库,不需要独立的服务器进程。Python内置了对SQLite的支持,使用标准库中的sqlite3模块即可进行数据库操作。下面是如何使用SQLite在Python中进行轻量级数据库操作的详细步骤。

1. 导入SQLite模块

首先,导入Python内置的sqlite3模块:

python 复制代码
import sqlite3

2. 创建或连接到一个SQLite数据库

你可以使用sqlite3.connect()方法连接到一个SQLite数据库。如果数据库文件不存在,SQLite会自动创建它。

python 复制代码
conn = sqlite3.connect('example.db')
  • example.db是数据库的文件名。如果你想在内存中创建一个数据库(不保存到文件),可以使用:memory:作为数据库名:

    python 复制代码
    conn = sqlite3.connect(':memory:')

3. 创建一个游标对象

游标(cursor)对象用于执行SQL命令和查询:

python 复制代码
cursor = conn.cursor()

4. 创建表

使用SQL语句创建表,例如创建一个用户表:

python 复制代码
cursor.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT,
        age INTEGER
    )
''')
  • CREATE TABLE IF NOT EXISTS 确保只有在表不存在时才会创建表。
  • INTEGER PRIMARY KEY 定义了一个自增的主键。

5. 插入数据

使用INSERT INTO语句插入数据:

python 复制代码
cursor.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ("Alice", 30))

cursor.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ("Bob", 25))

# 提交事务
conn.commit()
  • 使用?占位符避免SQL注入。
  • 通过conn.commit()提交事务,确保数据保存到数据库中。

6. 查询数据

使用SELECT语句查询数据:

python 复制代码
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()

for row in rows:
    print(row)
  • fetchall()方法获取所有的查询结果,并返回一个包含元组的列表。
  • fetchone()方法用于获取单行结果。

7. 更新数据

使用UPDATE语句更新数据:

python 复制代码
cursor.execute('''
    UPDATE users SET age = ? WHERE name = ?
''', (35, "Alice"))

# 提交事务
conn.commit()

8. 删除数据

使用DELETE语句删除数据:

python 复制代码
cursor.execute('''
    DELETE FROM users WHERE name = ?
''', ("Bob",))

# 提交事务
conn.commit()

9. 使用参数化查询

为了避免SQL注入,在执行SQL查询时应始终使用参数化查询:

python 复制代码
name = "Charlie"
age = 28

cursor.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', (name, age))

conn.commit()

10. 关闭连接

操作完成后,关闭游标和数据库连接:

python 复制代码
cursor.close()
conn.close()

11. 处理异常

为了处理数据库操作中的潜在错误,通常会使用try...except块:

python 复制代码
try:
    conn = sqlite3.connect('example.db')
    cursor = conn.cursor()
    
    # 执行数据库操作
    
except sqlite3.Error as e:
    print(f"An error occurred: {e}")
finally:
    if conn:
        conn.close()

12. 使用with语句管理资源

你可以使用with语句来管理连接和游标的资源,确保它们在操作完成后正确关闭:

python 复制代码
with sqlite3.connect('example.db') as conn:
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM users')
    rows = cursor.fetchall()
    for row in rows:
        print(row)

使用with语句,Python会在块结束时自动关闭连接(即使发生异常),简化了资源管理。

13. 高级操作:使用SQLite的ORM框架

虽然直接使用sqlite3模块很方便,但对于复杂应用,ORM(对象关系映射)框架如SQLAlchemy更适合,它允许你通过Python对象操作数据库,同时保留了数据库的强大功能。

小结

SQLite与Python的集成非常紧密,使得轻量级数据库操作变得简单且高效。通过sqlite3模块,你可以在Python应用程序中执行大多数常见的数据库操作,如创建表、插入、更新、删除和查询数据。它是小型应用程序或原型开发的理想选择。

相关推荐
小宁爱Python13 分钟前
FastAPI+Sqlite+HTML的登录注册与文件上传系统:完整实现指南
sqlite·html·fastapi
爱上语文16 分钟前
Redis基础(4):Set类型和SortedSet类型
java·数据库·redis·后端
冰糖猕猴桃17 分钟前
【Python】进阶 - 数据结构与算法
开发语言·数据结构·python·算法·时间复杂度、空间复杂度·树、二叉树·堆、图
天水幼麟21 分钟前
python学习笔记(深度学习)
笔记·python·学习
巴里巴气23 分钟前
安装GPU版本的Pytorch
人工智能·pytorch·python
lifallen30 分钟前
Paimon vs. HBase:全链路开销对比
java·大数据·数据结构·数据库·算法·flink·hbase
wt_cs44 分钟前
银行回单ocr api集成解析-图像文字识别-文字识别技术
开发语言·python
_WndProc1 小时前
【Python】Flask网页
开发语言·python·flask
互联网搬砖老肖1 小时前
Python 中如何使用 Conda 管理版本和创建 Django 项目
python·django·conda
测试者家园1 小时前
基于DeepSeek和crewAI构建测试用例脚本生成器
人工智能·python·测试用例·智能体·智能化测试·crewai