SQLite 是一個小型的關系型數據庫,它最大的特點在于不需要單獨的服務、零配置。我們在之前講過的兩個數據庫,不管是 MySQL 還是 MongoDB,都需要我們安裝。安裝之后,然后運行起來,其實這就相當于已經有一個相應的服務在跑著。

SQLite 與前面所說的兩個數據庫不同。首先Python 已經將相應的驅動模塊作為了標準庫的一部分,只要是你安裝了 Python,就可以使用;再者它可以類似于操作文件那樣來操作 SQLite 數據庫文件。還有一點,SQLite 源代碼不受版權限制。

建立連接

SQLite 也是一個關系型數據庫,所以 SQL 可以直接在里面使用。由于 SQLite 的驅動已經在 Python 里面了,所以只要引用就可以直接使用,由于我們之前已經講過 MySQL 了,所以對于本次內容理解起來就容易多了。



由上面的代碼我們得到了連接對象,是不是覺得比 MySQL 連接要簡單很多呢?在 sqlite3.connect('lite.db') 中,如果已經有了那個數據庫,就直接連接它,如果沒有的話,就會自動建一個。需要注意的是, 這里的路徑是可以隨意指定的。

下面的代碼顯示的是連接對象的屬性和方法:



建立游標

這一步其實跟 MySQL 也很類似,連接了數據庫之后,要建立游標對象:

>>> cur = conn.cursor()

接下來就是對數據庫內容的操作,都是用游標對象方法來實現:



我們在里面看到了一系列我們熟悉的名稱:close()、execute()、fetchall() 等。

1.創建數據庫表

面對 SQLite 數據庫,我們之前熟悉的 SQL 指令都可以用:



這樣就在數據庫 lite.db 中建立了一個表 books。對這個表可以增加數據:



為了保證數據能夠保存,還要進行如下操作:



以上,在剛才建立的數據庫中已經有了一個表 books,表中已經有了一條記錄。

2.查詢

保存以后我們來查詢一下:



3.批量插入

我們來給 books 表中多增加一些內容,以便于我們進行其它的操作:



這次我們來一個批量插入:


接下來我們用循環語句來打印一下查詢結果:



4.更新

正如我們前面所說的,在 cur.execute() 中,可以寫 SQL 語句來操作數據庫:



接下來我們按照條件查詢來看一看:



5.刪除

刪除也是操作數據庫必須的動作:



最后不要忘記在完成對數據庫的操作以后,一定記得給人家「關上門」:



寫在之后

基本的知識差不多就是這些,當然肯定不局限于此。在實際的編程中我們肯定會遇到很多的問題,大家記得要多多去查閱官方文檔,學會解決問題。