pymysql中的cursor
时间: 2024-12-31 08:38:00 浏览: 13
### PyMySQL Cursor 的使用方法
在 Python 中,`PyMySQL` 是一个用于与 MySQL 数据库交互的库。通过 `cursor` 对象可以执行 SQL 查询并处理结果集。
#### 创建连接和游标对象
为了使用 `cursor`,首先需要建立到数据库的连接:
```python
import pymysql.cursors
connection = pymysql.connect(
host='127.0.0.1',
user='root',
password='123',
db='demo_temp',
charset='utf8',
cursorclass=pymysql.cursors.DictCursor # 使用字典光标的类
)
```
这段代码设置了主机地址、用户名、密码以及要使用的字符编码,并指定了 `DictCursor` 类型来获取每一行作为字典形式的结果[^2]。
#### 执行查询语句
一旦建立了连接,就可以创建一个 `with connection.cursor()` 上下文管理器中的临时游标实例来进行各种操作:
```python
with connection.cursor() as cursor:
sql_query = "SELECT * FROM users"
# mogrify 方法用来查看实际发送给服务器前构建好的SQL字符串
formatted_sql = cursor.mogrify(sql_query)
# execute 方法真正提交查询请求至数据库
cursor.execute(sql_query)
print(formatted_sql)
# 输出类似于 SELECT * FROM users;
```
这里展示了如何利用 `mogrify()` 来预览即将被执行的具体 SQL 文本[^1];而 `execute()` 则负责向数据库发出指令[^3]。
#### 获取查询结果
对于读取数据的操作(如 `SELECT`),可以通过几种不同的方式检索返回的数据:
- **fetchone():** 取回单条记录;
- **fetchall():** 返回所有匹配项组成的列表;
- **fetchmany(size):** 提供指定数量的结果集合。
例如:
```python
results = cursor.fetchmany(2) # 获取两条记录
for row in results:
print(row['column_name']) # 假设表中有 column_name 字段
```
这会打印出从查询结果集中取得的第一批两行中特定列的内容。
#### 关闭资源
完成所有的数据库活动之后应当记得释放占用的资源:
```python
connection.close()
```
确保每次打开新连接后都调用了此函数以防止潜在的安全风险或性能问题[^4]。
阅读全文