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