SQLite是內嵌在Python中的輕量級、基於磁盤文件袋額數據庫管理系統,不需要安裝和配置服務,支持使用SQL語句來訪問數據庫。該數據庫使用C語言開發,支持大多數SQL91標准,支持原子的、一致的、獨立的和持久的事務,不支持外鍵限制;通過數據庫級的獨占性和共享性鎖定來實現獨立事務,當多個線程同時訪問同一個數據庫並試圖寫入數據時,每一時刻只有一個線程可以寫入數據。
SQLite支持最大140TB大小的單個數據庫,每個數據庫完全存儲在單個磁盤文件中,以B+樹數據結構的形式存儲,一個數據庫就是一個文件,通過直接復制數據庫文件就可以實現數據庫的備份。如果需要使用可視化管理工具,可以下載並使用SQLiteManager、SQLite Database Browser 或其他類似工具。
訪問和操作SQLite數據時,首先導入sqlite3模塊,然后創建一個與數據庫關聯的Connection對象,例如:
1 import sqlite3 #導入模塊
2
3 #conn = sqlite3.connect('example.db') #連接數據庫
4 # connect()方法,可以判斷一個數據庫文件是否存在,如果不存在就自動創建一個,如果存在的話,就打開那個數據庫。
5
6 #再創建一個Cusor對象,並且調用Cursor對象的execute()方法來執行SQL語句創建數據表以及查詢、插入、修改或刪除數據庫中的數據,例如:
7 #c = conn.cursor()
8
9 #創建表
10 #c.execute('''CREATE TABLE stocks(date text,trans text,symbol text,gty real,price real)''')
11
12 #向表中插入一條數據
13 #c.execute('''insert into stocks values('2016-01-05','BUY','RHAT',100,35.14)''')
14
15 #提交當前事務,保存數據
16 #conn.commit()
17
18 #關閉數據庫連接
19 #conn.close()
20
21
22
23 #查詢剛才插入的數據
24 #由於剛才已經關閉了數據庫連接,需要重新創建Connection對象和Cursor對象
25 conn = sqlite3.connect('example.db') 26 c = conn.execute('''select * from stocks''') 27 print(c) #<sqlite3.Cursor object at 0x00000000007E25E0>
28
29 print(list(c)) #[('2016-01-05', 'BUY', 'RHAT', 100.0, 35.14)]
30
31 #數據成功提取出來了
還可以用如下方法查詢數據:
1 conn = sqlite3.connect('example.db') 2 c = conn.cursor() 3 a = c.execute('select * from stocks') 4 print(c) #<sqlite3.Cursor object at 0x00000000007E25E0>
5
6 for i in a: 7 print(i) #('2016-01-05', 'BUY', 'RHAT', 100.0, 35.14)