溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python數(shù)據(jù)庫(kù)編程接口怎么使用

發(fā)布時(shí)間:2022-06-20 09:23:06 來(lái)源:億速云 閱讀:163 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下Python數(shù)據(jù)庫(kù)編程接口怎么使用的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

    一、前言

    在項(xiàng)目開(kāi)發(fā)中,數(shù)據(jù)庫(kù)應(yīng)用必不可少。雖然數(shù)據(jù)庫(kù)的種類有很多,如SQLite、MySQL、Oracle等,但是它們的功能基本是一樣都是一樣的,為對(duì)數(shù)據(jù)庫(kù)統(tǒng)一的操作,大多數(shù)語(yǔ)言都提供了簡(jiǎn)單的、標(biāo)準(zhǔn)化的接口(API)。在Python Database API 2.0規(guī)范中,定義了Python數(shù)據(jù)庫(kù)API接口的各個(gè)部分,如模塊接口、連接對(duì)象、游標(biāo)對(duì)象、類型對(duì)象和構(gòu)造器、DB API的可選擴(kuò)展以及可選的錯(cuò)誤處理機(jī)制等。本文將重點(diǎn)介紹數(shù)據(jù)庫(kù)的連接對(duì)象和游標(biāo)對(duì)象。

    二、連接對(duì)象

    數(shù)據(jù)庫(kù)連接對(duì)象(Connection Object)主要提供獲取數(shù)據(jù)庫(kù)游標(biāo)對(duì)象和提交/回滾事務(wù)的方法,以及如何關(guān)閉數(shù)據(jù)庫(kù)連接。

    1.獲取連接對(duì)象

    如何獲取連接對(duì)象呢?這就需要使用connect()函數(shù)。該函數(shù)有多個(gè)參數(shù),具體使用那個(gè)參數(shù),取決于使用的數(shù)據(jù)庫(kù)類型。例如,需要訪問(wèn)Oracle數(shù)據(jù)庫(kù)和MySQL數(shù)據(jù)庫(kù),必須同時(shí)下載Oracle和MySQL數(shù)據(jù)庫(kù)模塊。這些模塊在獲取連接對(duì)象時(shí),都需要使用connect()函數(shù)。

    connect()函數(shù)常用的參數(shù)及說(shuō)明如下表:

    Python數(shù)據(jù)庫(kù)編程接口怎么使用

    例如,使用PyMySQL模塊連接MySQL數(shù)據(jù)庫(kù),示例代碼如下:

    import pymysql
    
    conn = pymysql.connect(
        host="localhost",
        password="123456",
        db="test",
        charset="utf8",
        cursorclass=pymysql.cursors.DictCursor)

    說(shuō)明: 上述代碼中,pymysql.connect()方法使用的參數(shù)與上表并不完全相同。在使用時(shí),要以具體的數(shù)據(jù)庫(kù)模塊為準(zhǔn)。

    2.連接對(duì)象的方法

    connect()函數(shù)返回連接對(duì)象,這個(gè)對(duì)象表示目前和數(shù)據(jù)庫(kù)的會(huì)話,連接對(duì)象支持的方法如下表所示:

    方法名說(shuō)明close()關(guān)閉數(shù)據(jù)庫(kù)連接commit()提交事務(wù)rollback()回滾事務(wù)cursor()獲取游標(biāo)對(duì)象,操作數(shù)據(jù)庫(kù),如執(zhí)行DML操作,調(diào)用存儲(chǔ)過(guò)程等

    Python數(shù)據(jù)庫(kù)編程接口怎么使用

    事務(wù)主要用于處理數(shù)據(jù)量大、復(fù)雜度高的數(shù)據(jù)。如果操作的是一系列的動(dòng)作,比如小菜雞給小白轉(zhuǎn)賬,

    有如下2個(gè)操作:

    • 小菜雞的賬戶金額減少

    • 李四賬戶金額增加

    這時(shí)使用事務(wù)可以維護(hù)數(shù)據(jù)庫(kù)的完整性,保證2個(gè)操作要么全部執(zhí)行,要么全部不執(zhí)行。

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

    游標(biāo)對(duì)象(Cursor Object)代表數(shù)據(jù)中的游標(biāo),用于指示抓取數(shù)據(jù)操作的上下文。主要提供執(zhí)行SQL語(yǔ)句、調(diào)用存儲(chǔ)過(guò)程、獲取查詢結(jié)果等方法。

    如何獲取游標(biāo)對(duì)象呢?通過(guò)連接對(duì)象的cursor()方法,可以獲取到游標(biāo)對(duì)象。

    游標(biāo)對(duì)象的屬性如下所示:

    • description:數(shù)據(jù)庫(kù)列類型和值的描述信息。

    • rowcount:回返結(jié)果的行數(shù)統(tǒng)計(jì)信息,如SELECT,UPDATE,CALLPROC等。

    游標(biāo)對(duì)象的方法如下表所示:

    方法名說(shuō)明callproc(procname,[,parameters])調(diào)用存儲(chǔ)過(guò)程,需要數(shù)據(jù)庫(kù)支持close()關(guān)閉當(dāng)前游標(biāo)execute(operation,[,parameters])執(zhí)行數(shù)據(jù)庫(kù)操作,SQL語(yǔ)句或者數(shù)據(jù)庫(kù)命令executemany(operation,seq_of_params)用于批量操作,如批量更新fetchone()獲取查詢結(jié)果的下一條記錄fetchmany(size)獲取指定量的記錄fetchall()獲取結(jié)果集的所有記錄nextset()跳至下一個(gè)可用的結(jié)果集arraysize指定使用fetchmany()獲取的行數(shù),默認(rèn)為1setinputsizes(sizes)設(shè)置在調(diào)用execute*()方法時(shí)分配的內(nèi)存區(qū)域大小setoutputsize(sizes)設(shè)置列緩沖區(qū)大小,對(duì)大數(shù)據(jù)列如LONGS和BLOBS尤其有用

    Python數(shù)據(jù)庫(kù)編程接口怎么使用

    以上就是“Python數(shù)據(jù)庫(kù)編程接口怎么使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI