Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
python执行数据库的查询操作_创想鸟

python执行数据库的查询操作

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

python执行数据库的查询操作

Python 执行数据库查询操作主要通过数据库连接库实现,常用的方式有使用 sqlite3(适用于 SQLite)、PyMySQLmysql-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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
使用 Streamlit 解决 WinError 10013 端口权限错误
上一篇 2025年12月14日 16:11:50
优化Python目录扫描:使用os.scandir高效定位目标子文件夹
下一篇 2025年12月14日 16:12:04

相关推荐

发表回复

登录后才能评论
关注微信