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 语句
- 获取结果
- 关闭连接
示例代码:
前台功能介绍:1、网页首页显示有高级会员推荐,精品推荐,商业机会分类列表,最新供求信息,网站动态,推荐企业,行业动态等;2、商业机会栏目功能有:二级分类,已经带有详细分类的数据库,后台可以更改增加操作,并可以推荐公司,栏目分为分类显示信息,最新的采购、供应、合作和代理信息,搜索时同样按分类,信息,时间,交易类型等搜索;3、展厅展品栏目功能:二级分类,已经带有详细分类的数据库,后台可以更改增加操作,
立即学习“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 注入,操作完记得关闭连接或使用上下文管理器更安全。










