pymysql常用的游标类型

# 导入pymysql库
import pymysql
 # 连接数据库
connection = pymysql.connect(
    host="10.83.0.83", # 数据库主机名
    port=31379,        # 数据库端口号
    user="root",       # 数据库用户名
    password="weshare123",   # 数据库密码
    database="acc_cus",      # 数据库名称
    charset='utf8mb4',       # 数据库编码方式
    cursorclass=pymysql.cursors.DictCursor   # 游标类
)

代码说明:

  • 导入 pymysql 库和连接数据库。
  • 在连接数据库时,我们使用 pymysql.connect 函数并传入数据库的相关信息,并将返回的 connection 对象保存为变量,以便后续的数据库操作。
  • 其中, host 表示数据库的主机名,
  • port 则表示数据库的端口号,
  • user 和 password 分别表述数据库的用户名和密码,
  • database 则是要连接的数据库名称。
  • charset 表示数据库通信时使用的编码方式,
  • cursorclass 则表示游标类,这里使用 DictCursor 表示游标返回的结果将是以字典形式展示。

pymysql 常用的游标类型

pymysql 中,常用的游标类如下:

  1. Cursor:使用此游标类,返回结果为元组类型。
  2. DictCursor:使用此游标类,返回结果为字典类型。
  3. SSCursor:使用此游标类,返回结果为元组类型。不缓存结果,适合处理大量数据,但对于内存敏感的应用,对性能的影响较大。
  4. SSDictCursor:使用此游标类,返回结果为字典类型。不缓存结果,适合处理大量数据,但对于内存敏感的应用,对性能的影响较大。
  • 其中, CursorDictCursor 是最常用的两种游标类。
  • 使用 Cursor 游标类,返回的结果为元组类型,每个元组表示一行数据;
  • 使用 DictCursor 游标类,返回结果为字典类型,以字典的形式表示每行数据,字典的键是列名,值是对应的值。
  • SSCursorSSDictCursor 则是无缓存的游标类,适合处理大量数据,但对内存敏感的应用不友好,也不支持fetchmany()scroll() 方法。

Cursor:使用此游标类,返回结果为元组类型。

不指定游标类,默认是这种游标类。

import pymysql
    # 连接数据库
conn = pymysql.connect(
host='localhost', 
user='root', 
password='password', 
database='test', 
charset='utf8mb4')
    # 创建游标
cursor = conn.cursor()
    # 查询
sql = "select id, name from student"
cursor.execute(sql)
    # 获取查询结果,返回元组类型
result = cursor.fetchall()
    # 输出每行数据
for row in result:
   print(row)
    # 关闭游标和连接
cursor.close()
conn.close()

获取到的结果是:元组中包含元组
image

DictCursor:使用此游标类,返回结果为字典类型。

import pymysql.cursors
    # 连接数据库
connection = pymysql.connect(host='localhost', user='root', password='password', database='test', charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
    # 创建游标
cursor = connection.cursor()
    # 查询
sql = "select id, name from student"
cursor.execute(sql)
    # 获取查询结果,返回字典类型
result = cursor.fetchall()
    # 输出每行数据
for row in result:
    print(row)
    # 关闭游标和连接
cursor.close()
connection.close()

获取到的结果是:列表中包含字典

image

posted @ 2023-04-28 11:00  捷后愚生  阅读(746)  评论(0编辑  收藏  举报