天天看點

Python操作SQLite資料庫

從2.5版本開始,python的标準庫中就有了一個專門用于sqlite的sqlite3子產品。連接配接sqlite資料庫方式如下:

第一個語句用于引用資料庫api;

第二個語句建立了一個到資料庫的連接配接(connection):調用資料庫子產品的connect方法。該方法的參數是一個字元串,它定義了我們所要連接配接的那個資料庫。由于sqlite是将整個資料庫儲存在磁盤上的某個檔案中的,是以這裡就是該檔案的路徑。如果該資料庫不存在,就會直接建立出來;

第三個語句用于擷取一個遊标,它類似于文本編輯器中的光标,用于記錄我們目前在資料庫中的位置;當多個程式同時通路資料庫時,該資料庫可以知道誰在幹什麼。

資料類型對比

sqlite

python

說明

null

nonttype

啥也不知道

integer

int或long

整數

real

float

8位元組浮點數

text

unicode或str

字元串

blob

buffer

二進制資料(binary large object)

現在我們就可以操作資料庫了,我們将要執行的sql語句放到一個字元串中,并告訴資料庫去執行這個字元串,如下所示:

在将資料庫插入到資料庫或對資料庫做了任何其他修改之後,我們必須通過連接配接的commit方法送出(commit)這些修改:

現在我們可以用如下方式來擷取資料:

fetchone方法以元組的形式傳回每條記錄,其中各元素按查詢所指定的順序排列。如果不再有其他記錄存在,則傳回none。預設情況下,資料庫中的text是以unicode字元串的形式傳回的,我們可以告訴sqlite3以str的類型傳回字元串:将連接配接的text_factory成員設定為類型str。

fetchall方法的功能是以元組清單的形式傳回查詢所産生的全部資料。

一種較為快捷的插入方式:

這次execute的調用用到了兩個參數,第一個是帶有問号的sql語句,這些問号是将要插入的值的占位符,第二個是由待插入值所組成的元組,資料庫在執行該語句時,會用這些值從左到右地替換那些問号。

注意:

sql的資料類型與程式設計語言中的資料類型并不完全相同,是以在編寫應用程式的時候很有必要在它們之間進行類型轉換。

在被送出之前,對資料庫做出的修改不會有任何效果。這保證了當資料庫被兩個以上的程式同時操作時,能夠保持一緻的狀态。

轉載:http://blog.csdn.net/foreverling/article/details/44906393