PyMySQL 游標(biāo)對(duì)象

2021-07-05 16:55 更新

游標(biāo)對(duì)象

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


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)