從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