PyMySQL 游標對象

2021-07-05 16:55 更新

游標對象

**?class pymysql.cursors.Cursor? ** (連接)
  • 這是您用于與數據庫交互的對象。
  • 不要自己創(chuàng)建Cursor實例。調用?connections.Connection.cursor()?。
  • 請參閱規(guī)范中的Cursor。
  • ?callproc(procname,args =())?
    使用?args?執(zhí)行存儲過程
    procnameprocname - 字符串,在服務器上執(zhí)行的過程的名稱
    args - 與過程一起使用的參數序列
    返回原始?args?。
    兼容性警告:PEP-249指定必須返回任何已修改的參數。這當前是不可能的,因為它們只能通過將它們存儲在服務器變量中然后通過查詢檢索來獲得。由于存儲過程返回零個或多個結果集,因此沒有可靠的方法通過?callproc?獲取?OUT?或?INOUT?參數。服務器變量名為?@_procname_n?,其中?procname?是上面的參數,?n?是參數的位置(從零開始)。獲取過程生成的所有結果集后,可以使用?.execute()?發(fā)出?SELECT @ _procname_0?,...查詢以獲取任何?OUT?或?INOUT?值。
    兼容性警告:調用存儲過程本身的行為會創(chuàng)建一個空結果集。在程序生成的任何結果集之后出現。這是關于DB-API的非標準行為。一定要使用?nextset()?來推進所有結果集; 否則你可能會斷開連接。
  • ?close()
    ?關閉光標會耗盡所有剩余數據。
  • ?execute(query,args = None )
    ?執(zhí)行查詢
    參數:
    querystr) - 要執(zhí)行的查詢。
args元組,列表 字典 )) - 與查詢一起使用的參數。(可選的)
返回:受影響的行數
返回類型:INT
如果args是dict,則%(name)s可以用作查詢中的占位符。
  • ?executemany(查詢,args)?
針對一個查詢運行多個數據
參數:
> **query** - 要在服務器上執(zhí)行的查詢
args - 序列或映射的序列。它用作參數。
返回:受影響的行數(如果有)。
此方法可提高多行?INSERT?和?REPLACE?的性能。否則它等同于使用?execute()?循環(huán)遍歷?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()?方法返回發(fā)送到數據庫的確切字符串。此方法遵循DB API 2.0的擴展,然后是Psycopg。
  • ?setinputsizes(args)?
    沒有,DB API要求。
  • ?setoutputsizes(args)?
    沒有,DB API 要求。
?class pymysql.cursors.SSCursor ?(連接)
  • Unbuffered Cursor,主要用于返回大量數據的查詢,或用于通過慢速網絡連接到遠程服務器。
  • 不是將每行數據復制到緩沖區(qū),而是根據需要獲取行。這樣做的好處是客戶端使用更少的內存,并且當通過慢速網絡旅行或者結果集非常大時,返回行的速度要快得多。
  • 但是有一些限制。MySQL協(xié)議不支持返回總行數,因此判斷有多少行的唯一方法是迭代返回的每一行。此外,它目前無法向后滾動,因為只有當前行保存在內存中
  • ?close()?
    關閉光標會耗盡所有剩余數據。
  • ?fetchall()?
    根據MySQLdb獲取所有內容。對于大型查詢來說,它是無用的,因為它是緩沖的。如果您想要此方法的無緩沖生成器版本,請參閱?fetchall_unbuffered()?。
  • ?fetchall_unbuffered()?
    獲取全部,作為生成器實現,這不是標準的,但是,返回列表中的所有內容是沒有意義的,因為這會對大型結果集使用荒謬的內存。
  • ?fetchmany(size = None )?
    取很多
  • ?fetchone()?
    獲取下一行
  • ?read_next()?
    閱讀下一行
?class pymysql.cursors.DictCursor?(連接)
  • 將結果作為字典返回的游標
`?`class pymysql.cursors.SSDictCursor?` (連接)
  • 一個無緩沖的游標,它將結果作為字典返回


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號