Python通过sqlite3和PyMySQL等库执行数据库查询,首先建立连接并创建游标,然后执行SELECT语句,使用fetchall、fetchone或fetchmany获取结果,建议采用参数化查询防止SQL注入,并及时关闭连接或使用上下文管理器确保资源释放。

Python 执行数据库查询操作主要通过数据库连接库实现,常用的方式有使用 sqlite3(适用于 SQLite)、PyMySQL 或 mysql-connector-python(MySQL)、psycopg2(PostgreSQL)等。下面以 SQLite 和 MySQL 为例,介绍基本的查询流程。
1. 使用 sqlite3 查询(内置库)
SQLite 是轻量级文件数据库,Python 内置支持,适合本地开发和测试。
步骤:
导入 sqlite3 模块连接数据库(自动创建文件)创建游标对象执行 SELECT 语句获取结果关闭连接
示例代码:
立即学习“Python免费学习笔记(深入)”;
import sqlite3连接数据库(如果不存在会自动创建)
conn = sqlite3.connect('example.db')cursor = conn.cursor()
执行查询
cursor.execute("SELECT * FROM users WHERE age > ?", (18,))
获取所有结果
rows = cursor.fetchall()for row in rows:print(row)
关闭连接
conn.close()
2. 使用 PyMySQL 查询 MySQL 数据库
需要先安装:pip install pymysql
示例代码:
立即学习“Python免费学习笔记(深入)”;
import pymysql建立连接
conn = pymysql.connect(host='localhost',user='root',password='your_password',database='test_db',charset='utf8mb4')
cursor = conn.cursor()
执行查询
sql = "SELECT id, name, email FROM users WHERE age > %s"cursor.execute(sql, (20,))
获取结果
results = cursor.fetchall()for row in results:print(f"ID: {row[0]}, Name: {row[1]}, Email: {row[2]}")
关闭连接
cursor.close()conn.close()
3. 处理查询结果的几种方式
游标提供多种方法获取数据:
fetchone():返回一条记录fetchmany(n):返回最多 n 条记录fetchall():返回所有结果
建议在数据量大时使用 fetchone 或 fetchmany 避免内存溢出。
4. 使用字典形式返回结果(更易读)
PyMySQL 支持返回字典类型:
cursor = conn.cursor(pymysql.cursors.DictCursor)cursor.execute("SELECT * FROM users LIMIT 3")for row in cursor.fetchall(): print(f"姓名: {row['name']}, 年龄: {row['age']}")
这样字段访问更直观。
基本上就这些,根据数据库类型选择合适驱动,注意参数化查询防止 SQL 注入,操作完记得关闭连接或使用上下文管理器更安全。
以上就是python执行数据库的查询操作的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1376773.html
微信扫一扫
支付宝扫一扫