cursor使用python
时间: 2025-05-04 18:56:36 浏览: 33
### 使用 Python 中的游标进行数据库操作
在 Python 数据库编程中,`cursor` 是用于执行 SQL 查询和处理查询结果的核心对象。以下是关于如何使用 `cursor` 的详细介绍:
#### 创建并初始化 Cursor 对象
要创建一个 `Cursor` 对象,通常需要先建立与数据库的连接。以下是一个典型的例子,展示如何通过 `mysql.connector` 或其他类似的模块来实现这一点。
```python
import mysql.connector
# 建立数据库连接
connection = mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="your_database"
)
# 初始化 Cursor 对象
cursor_obj = connection.cursor()
```
上述代码展示了如何设置到 MySQL 数据库的连接,并初始化了一个 `Cursor` 对象[^3]。
#### 执行简单的 SQL 插入语句
一旦有了 `Cursor` 对象,就可以利用它来执行各种类型的 SQL 语句。下面的例子演示了如何向表中插入数据。
```python
# 执行一条 INSERT 语句
cursor_obj.execute('''
INSERT INTO INSTRUCTOR VALUES (1, 'Rav', 'Ahuja', 'TORONTO', 'CA')
''')
# 提交事务以保存更改
connection.commit()
```
这段代码片段说明了如何通过 `execute()` 方法运行 SQL 插入命令,并通过调用 `commit()` 来提交这些变更[^1]。
#### 处理多条记录作为迭代器
除了单次执行外,还可以将 `Cursor` 当作迭代器来逐行读取大量数据的结果集。这种方式对于大数据量尤其有用。
```python
query = "SELECT * FROM INSTRUCTOR"
cursor_obj.execute(query)
for row in cursor_obj:
print(row)
```
这里体现了把 `Cursor` 结果当作可迭代对象使用的场景[^2]。
#### 更改默认连接超时时间
有时可能希望调整数据库会话中的某些行为特性,比如连接超时的时间长度。这可以通过传递额外的关键字参数给连接函数完成。
```python
custom_timeout_connection = mysql.connector.connect(
host='localhost',
user='root',
passwd='',
db='testdb',
connect_timeout=6000 # 设置为 6 秒钟
)
```
该部分解释了怎样自定义连接属性,例如延长或缩短等待响应的最大时限。
#### 存储大文件至数据库
如果打算存储较大的二进制资料(如图片或者文档),则需先把它们转化为适合存入关系型数据库的形式——即 Blob 类型字段的内容编码形式。
```python
def convert_to_binary_data(filename):
with open(filename, 'rb') as file:
binary_data = file.read()
return binary_data
file_content = convert_to_binary_data("example.pdf")
sql_insert_blob_query = """INSERT INTO FilesData (FileID, FileName, FileContent) VALUES (%s,%s,%s)"""
record_tuple = ('id_01', 'example.pdf', file_content)
cursor_obj.execute(sql_insert_blob_query, record_tuple)
connection.commit()
```
这个过程涉及到了两个主要步骤:首先是加载本地磁盘上的实际资源;其次是将其嵌套进预编译好的占位符模板里再发送出去[^4]。
---
阅读全文
相关推荐

















