配置Python環境的方法在我的博客中已經詳細介紹。
一、SQLite和PySQLite
在最近的Python版本中(從2.5開始),SQLite的優勢在於它的一個包裝(PySQLite)已經被包括在標準庫內。SQLite在Python中的模塊名稱爲“sqlite3”,我們可以在Python環境下通話命令import sqlite3
驗證Pyhton標準庫中是否含有此模塊。
如上圖所示輸入命令後無任何錯誤提示,便可以直接調用。
如果出現大量錯誤信息,可能是安裝腳本找不到所需文件。確保你知道庫文件和include文件安裝路徑,將它們顯示地提供給安裝腳本。假設我在/home/mlh/sqlite/current目錄中原地編譯SQLite,那麼頭文件應該可以在/home/mlh/sqlite/current/src和/home/mlh/sqlite/current/build/lib中找到。爲了讓安裝程序能使用這些路徑,需要編輯安裝腳本setup.py。在這個文件中可以設定變量include_dirs和library_dirs:
include_dirs = ['/home/mlh/sqlite/current/src']
library_dirs = ['/home/mlh/sqlite/current/build/lib']
在重新綁定變量之後,剛纔說過的安裝過程應該可以正常進行了。
二、Python與SQLite建立連接
將SQLite作爲一個模塊導入,模塊名稱爲sqlite3(如果使用的是標準庫)。之後可以創建一個到數據庫文件的連接——如果文件不存在就會自動生成——通過提供一個文件名(可以是文件的絕對路徑或相對路徑):
import sqlite3
conn = sqlite3.connect('F:/test/data.db')
之後就能獲得連接的遊標:
curs = conn.cursor()
這個遊標可以用來執行SQL查詢。完成查詢並且做出某些更改後確保已經進行了提交,這樣纔可以將這些修改真正的保存到文件中:
conn.commit()
可以在每次修改數據後都進行提交,準備關閉數據庫時,使用close方法:
conn.close()
三、讀出SQLite數據庫中的表“demo”的信息
1、在SQLite數據庫中創建一張表“demo”,使用SQL語句創建。
程序代碼:
/*創建表名爲"demo"的表結構*/
create table demo(id integer not null primary key, names text not null, sex text not null, age integer not null);
/*在表中添加數據*/
insert into demo(names,sex,age) values('張三','男',23),('李四','女',18),('王五','男',20),('趙六','男',25);
2、先建立起與“data.db”數據庫的連接,再進行SQL語句查詢。
程序代碼:
# -*- coding: UTF-8 -*-
import sqlite3 #輸入sqlite3模塊
import json #輸入json模塊
import re #輸入re模塊
conn = sqlite3.connect('F:/test/data.db') #連接數據庫“data”
curs = conn.cursor() #返回連接的遊標對象
query = 'SELECT * FROM demo' #SQL語句查詢表“demo”
information = curs.execute(query)
print ' ','name','sex','age'
for inf in information: #循環輸出列表“demo”的每行內容
#使用json方法將“unicode”格式打印成中文
#使用re文法將“[]”去掉
inf1 = re.sub(r'["[",\]]', '', json.dumps(inf).decode('unicode-escape'))
inf2 = re.sub(r'[""",\"]', '', inf1) #使用re方法將“ “” ”去掉
print inf2
conn.close() #關閉數據庫
運行結果: