PyMySQL 游标对象
游标对象
**class pymysql.cursors.Cursor
** (连接)
- 这是您用于与数据库交互的对象。
- 不要自己创建Cursor实例。调用
connections.Connection.cursor()
。 - 请参阅规范中的Cursor。
-
callproc(procname,args =())
使用args
执行存储过程
procnameprocname - 字符串,在服务器上执行的过程的名称
args - 与过程一起使用的参数序列
返回原始args
。
兼容性警告:PEP-249指定必须返回任何已修改的参数。这当前是不可能的,因为它们只能通过将它们存储在服务器变量中然后通过查询检索来获得。由于存储过程返回零个或多个结果集,因此没有可靠的方法通过callproc
获取OUT
或INOUT
参数。服务器变量名为@_procname_n
,其中procname
是上面的参数,n
是参数的位置(从零开始)。获取过程生成的所有结果集后,可以使用.execute()
发出SELECT @ _procname_0
,...查询以获取任何OUT
或INOUT
值。
兼容性警告:调用存储过程本身的行为会创建一个空结果集。在程序生成的任何结果集之后出现。这是关于DB-API的非标准行为。一定要使用nextset()
来推进所有结果集; 否则你可能会断开连接。-
close()
关闭光标会耗尽所有剩余数据。-
execute(query,args = None )
执行查询
参数:
query(str) - 要执行的查询。args(元组,列表或 字典 )) - 与查询一起使用的参数。(可选的)返回:受影响的行数
返回类型:INT
如果args是dict,则%(name)s可以用作查询中的占位符。针对一个查询运行多个数据
-
executemany(查询,args)
参数:> **query** - 要在服务器上执行的查询
args - 序列或映射的序列。它用作参数。返回:受影响的行数(如果有)。
此方法可提高多行INSERT
和REPLACE
的性能。否则它等同于使用execute()
循环遍历args
。
-
fetchall()
获取所有行-
fetchmany(size = None)
获取几行-
fetchone()
获取下一行-
max_stmt_length= 1024000
executemany()
生成的最大语句大小。允许语句的最大大小为max_allowed_packet - packet_header_size
。max_allowed_packet
的默认值是1048576。-
mogrify(query,args = None )
通过调用execute()
方法返回发送到数据库的确切字符串。此方法遵循DB API 2.0的扩展,然后是Psycopg。-
setinputsizes(args)
没有,DB API要求。-
setoutputsizes(args)
没有,DB API 要求。
class pymysql.cursors.SSCursor
(连接)
- Unbuffered Cursor,主要用于返回大量数据的查询,或用于通过慢速网络连接到远程服务器。
- 不是将每行数据复制到缓冲区,而是根据需要获取行。这样做的好处是客户端使用更少的内存,并且当通过慢速网络旅行或者结果集非常大时,返回行的速度要快得多。
- 但是有一些限制。MySQL协议不支持返回总行数,因此判断有多少行的唯一方法是迭代返回的每一行。此外,它目前无法向后滚动,因为只有当前行保存在内存中
-
close()
关闭光标会耗尽所有剩余数据。-
fetchall()
根据MySQLdb获取所有内容。对于大型查询来说,它是无用的,因为它是缓冲的。如果您想要此方法的无缓冲生成器版本,请参阅fetchall_unbuffered()
。-
fetchall_unbuffered()
获取全部,作为生成器实现,这不是标准的,但是,返回列表中的所有内容是没有意义的,因为这会对大型结果集使用荒谬的内存。-
fetchmany(size = None )
取很多-
fetchone()
获取下一行-
read_next()
阅读下一行
class pymysql.cursors.DictCursor
(连接)
- 将结果作为字典返回的游标
``class pymysql.cursors.SSDictCursor
` (连接)
- 一个无缓冲的游标,它将结果作为字典返回