首頁 > 軟體

Python運算元據庫之資料庫程式設計介面

2022-06-19 14:01:15

一、前言

在專案開發中,資料庫應用必不可少。雖然資料庫的種類有很多,如SQLite、MySQL、Oracle等,但是它們的功能基本是一樣都是一樣的,為對資料庫統一的操作,大多數語言都提供了簡單的、標準化的介面(API)。在Python Database API 2.0規範中,定義了Python資料庫API介面的各個部分,如模組介面、連線物件、遊標物件、型別物件和構造器、DB API的可選擴充套件以及可選的錯誤處理機制等。本文將重點介紹資料庫的連線物件和遊標物件。

二、連線物件

資料庫連線物件(Connection Object)主要提供獲取資料庫遊標物件和提交/回滾事務的方法,以及如何關閉資料庫連線。

1.獲取連線物件

如何獲取連線物件呢?這就需要使用connect()函數。該函數有多個引數,具體使用那個引數,取決於使用的資料庫型別。例如,需要存取Oracle資料庫和MySQL資料庫,必須同時下載Oracle和MySQL資料庫模組。這些模組在獲取連線物件時,都需要使用connect()函數。

connect()函數常用的引數及說明如下表:

例如,使用PyMySQL模組連線MySQL資料庫,範例程式碼如下:

import pymysql

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

說明: 上述程式碼中,pymysql.connect()方法使用的引數與上表並不完全相同。在使用時,要以具體的資料庫模組為準。

2.連線物件的方法

connect()函數返回連線物件,這個物件表示目前和資料庫的對談,連線物件支援的方法如下表所示:

方法名說明close()關閉資料庫連線commit()提交事務rollback()回滾事務cursor()獲取遊標物件,運算元據庫,如執行DML操作,呼叫儲存過程等

事務主要用於處理資料量大、複雜度高的資料。如果操作的是一系列的動作,比如小菜雞給小白轉賬,

有如下2個操作:

  • 小菜雞的賬戶金額減少
  • 李四賬戶金額增加

這時使用事務可以維護資料庫的完整性,保證2個操作要麼全部執行,要麼全部不執行。

三、遊標物件

遊標物件(Cursor Object)代表資料中的遊標,用於指示抓取資料操作的上下文。主要提供執行SQL語句、呼叫儲存過程、獲取查詢結果等方法。

如何獲取遊標物件呢?通過連線物件的cursor()方法,可以獲取到遊標物件。

遊標物件的屬性如下所示:

  • description:資料庫列型別和值的描述資訊。
  • rowcount:回返結果的行數統計資訊,如SELECT,UPDATE,CALLPROC等。

遊標物件的方法如下表所示:

方法名說明callproc(procname,[,parameters])呼叫儲存過程,需要資料庫支援close()關閉當前遊標execute(operation,[,parameters])執行資料庫操作,SQL語句或者資料庫命令executemany(operation,seq_of_params)用於批次操作,如批次更新fetchone()獲取查詢結果的下一條記錄fetchmany(size)獲取指定量的記錄fetchall()獲取結果集的所有記錄nextset()跳至下一個可用的結果集arraysize指定使用fetchmany()獲取的行數,預設為1setinputsizes(sizes)設定在呼叫execute*()方法時分配的記憶體區域大小setoutputsize(sizes)設定列緩衝區大小,對巨量資料列如LONGS和BLOBS尤其有用

到此這篇關於Python運算元據庫之資料庫程式設計介面的文章就介紹到這了,更多相關Python程式設計介面內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com