Python通过数据库连接库(如sqlite3
/PyMySQL
)或ORM工具(如SQLAlchemy)执行SQL查询,核心步骤为:连接数据库→创建游标→执行SQL语句→处理结果→关闭连接。 关键亮点包括参数化查询防注入、游标对象管理以及结果集灵活转换,适用于从简单查询到复杂事务的全场景需求。
-
连接数据库
根据数据库类型选择对应库:SQLite用内置sqlite3
,MySQL用PyMySQL
或mysql-connector
,PostgreSQL用psycopg2
。连接时需提供主机、用户名、密码等参数,建议通过环境变量存储敏感信息,避免硬编码风险。 -
执行查询与事务
通过游标对象的execute()
方法运行SQL语句,如cursor.execute("SELECT * FROM users WHERE age > %s", (25,))
。参数化查询(占位符%s
或?
)可有效防止SQL注入。事务管理用commit()
提交或rollback()
回滚,确保数据一致性。 -
处理查询结果
使用fetchall()
获取全部结果(返回元组列表),或fetchone()
逐行提取。结合Pandas可快速转为DataFrame:pd.DataFrame(results, columns=[desc[0] for desc in cursor.description])
,方便后续分析。 -
高级工具简化操作
- ORM工具:SQLAlchemy或Peewee通过Python类映射表结构,用
session.query(User).filter(User.age>25)
替代原生SQL。 - 封装库:Records库支持
db.query("SELECT * FROM users").export('df')
一键导出数据,简化流程。
- ORM工具:SQLAlchemy或Peewee通过Python类映射表结构,用
提示:生产环境需启用SSL加密连接,定期更新依赖库修补漏洞,复杂查询建议用EXPLAIN分析性能。根据项目规模选择轻量级库或全功能ORM,平衡效率与可维护性。