常用數(shù)據(jù)庫:MySQL、Oracle、SQLite
但是包嵌入到Python中的只有輕量級(jí)數(shù)據(jù)庫SQLite,所以不用安裝SQLite數(shù)據(jù)庫操作包(但要安裝數(shù)據(jù)庫軟件,此處我犯錯(cuò)誤了)。其他的必須安裝。同時(shí)也要安裝數(shù)據(jù)庫軟件。
先講解下DB-API。因?yàn)閿?shù)據(jù)庫類型實(shí)在太多太雜,所以就出現(xiàn)了SGI小組,為不同的數(shù)據(jù)庫提供一致的訪問接口即DB-API,可以在不同數(shù)據(jù)庫間快速移植代碼。
比如Python開發(fā)的MySQLdb遵從DB-API,實(shí)現(xiàn)了connect(),connect.cursor()等方法...其他的db類也實(shí)現(xiàn)了同樣的方法,故可以很容易移植。
DB-API規(guī)范的屬性:
apilevelDB-API模塊兼容的DB-API版本號(hào)
threadsafety線程安全級(jí)別
paramstyle該模塊支持的SQL語句參數(shù)風(fēng)格
DB-API規(guī)范的方法:
connect()連接函數(shù),生成一個(gè)connect對(duì)象,以提供數(shù)據(jù)庫操作,同事函數(shù)參數(shù)也是固定好的
其中connect對(duì)象又有如下方法:
#所謂事務(wù)可以認(rèn)為是一整套操作只要有一處紕漏就廢
close():關(guān)閉此connect對(duì)象,關(guān)閉后無法再進(jìn)行操作,除非再次創(chuàng)建連接
commit():提交當(dāng)前事務(wù),如果是支持事務(wù)的數(shù)據(jù)庫執(zhí)行增刪改后沒有commit則數(shù)據(jù)庫默認(rèn)回滾,白操作了
rollback():取消當(dāng)前事務(wù)
cursor():創(chuàng)建游標(biāo)對(duì)象
其中cursor游標(biāo)對(duì)象又有如下屬性和方法:
常用方法:
close():關(guān)閉此游標(biāo)對(duì)象
fetchone():得到結(jié)果集的下一行
fetchmany([size=cursor.arraysize]):得到結(jié)果集的下幾行
fetchall():得到結(jié)果集中剩下的所有行
excute(sql[,args]):執(zhí)行一個(gè)數(shù)據(jù)庫查詢或命令
excutemany(sql,args):執(zhí)行多個(gè)數(shù)據(jù)庫查詢或命令
常用屬性:
connection:創(chuàng)建此游標(biāo)對(duì)象的數(shù)據(jù)庫連接
arraysize:使用fetchmany()方法一次取出多少條記錄,默認(rèn)為1
lastrowid:相當(dāng)于PHP的last_inset_id()
以上內(nèi)容為大家介紹了Python之?dāng)?shù)據(jù)庫游標(biāo)對(duì)象詳解,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/