目錄
- 1. 建立與SQLite數據庫的連接
- 1.1 建立基于內存的數據庫
- 1.2 建立基于硬盤的數據庫
- 1.3 基于內存和基于硬盤的區別
- 2. 在指定數據庫里建立表結構
- 2.1 建立數據庫表結構
- 2.2 查找數據
- 2.3 刪除數據
- 總結
1. 建立與SQLite數據庫的連接
SQLite是python自帶的一款基于內存或硬盤的、開源的、關系型的輕量級數據庫。這意味著無需下載安裝SQLite數據庫產品和對應的數據庫驅動程序,可以被python語言以模塊導入方式直接調用。其位置在python的安裝路徑為Lib/sqlite3/。
對關系型數據庫進行讀寫操作,需要建立如下幾個操作步驟:
- 第一步,建立應用系統與數據庫的連接;
- 第二步,需要建立數據庫實例,通俗理解是建立一個存儲數據庫的文件;
- 第三步,建立對應的表結構;
- 第四步,往表里寫記錄,讀記錄;
- 第五步,關閉與數據庫的連接。
1.1 建立基于內存的數據庫
import sqlite3 #導入sqlite3模塊
conn = sqlite3.connect(":memory:") #建立一個基于內存的數據庫
conn.close() #關閉與數據庫的連接
當對數據庫操作完成時,建議養成及時關閉數據庫連接的好習慣,避免打開數據庫連接過多,消耗內存存儲空間。
1.2 建立基于硬盤的數據庫
import sqlite3 #導入sqlite3模塊
conn = sqlite3.connect("First.db") #建立一個基于硬盤的數據庫實例
conn.close() #關閉與數據庫的連接
效果:
執行代碼后,在python的安裝路徑下生成First.db文件。

1.3 基于內存和基于硬盤的區別
基于內存數據庫容易丟失(特別是關機或因突發事故就會丟失內存里的數據),基于硬盤數據可以持久保存基于內存數據讀寫速度快,基于硬盤數據讀寫速度慢基于內存數據存儲容量受內容受內容可用空間限制,基于硬盤數據存儲容量受限于硬盤可用空間
2. 在指定數據庫里建立表結構
在關系型數據庫中,需要創建關系型特征的表結構,才能往表里寫入數據以及進行數據庫的操作。
將下列二維結構化記錄表依次存放到數據庫表中。

建立一個對應的數據庫表需要建立釣魚日期、名稱、數量、價格、備注五個字段。其中,字段值需要確定數據類型,如數量為整數,價格為浮點數,釣魚日期、名稱、備注為字符型。
2.1 建立數據庫表結構
import sqlite3 #導入sqlite3模塊
conn = sqlite3.connect("First.db") #建立一個基于硬盤的數據庫實例
cur = conn.cursor() #通過建立數據庫游標對象,準備讀寫操作
cur.execute("Create table T_fish(date text,name text,nums int,price real,Explain text)") #根據上表結構建立對應的表結構對象
cur.execute("insert into T_fish Values('2018-3-28','黑魚',10,28.3,'tom')") #插入一行記錄結果信息
conn.commit() #保存提交,確保數據保存成功
conn.close() #關閉與數據庫的連接
在First.db數據庫中創建一個T_fish表,然后往表里插入一行記錄,最后提交保存并關閉數據庫連接。
- 建立數據庫表采用的時標準SQL命令的方法,在數據庫里創建對應的T_fish表。
- 插入一行記錄,通過游標的execu()方法,利用SQL的insert命令往T_fish表里執行一條插入記錄;可以連續多行執行execu()方法,執行多條SQL語句
- 提交保存,在對數據庫進行寫操作時,最后必須調用Connection對象的commit()方法,才能把數據真的提交到數據庫中,否則會存在數據丟失。
游標起指向某數據庫的某表的作用,只有建立了確定的表的指向關系,才能進行插入、修改、刪除、查找等操作。
2.2 查找數據
import sqlite3
conn = sqlite3.connect("First.db") #連接數據庫
cur = conn.cursor() #創建關聯數據庫的游標實例
cur.execute("select * from T_fish") #對T_fish表執行數據查找命令
for row in cur.fetchall(): #以一條記錄為元組單位返回結果給row
print(row)
conn.close() #關閉數據庫
效果:

2.3 刪除數據
import sqlite3
conn = sqlite3.connect("First.db") #連接數據庫
cur = conn.cursor() #創建游標實例
cur.execute("insert into T_fish Values('2018-3-29','鯉魚',17,10.3,'john')") #插入一條數據
cur.execute("insert into T_fish Values('2018-3-30','鰱魚',9,9.2,'tim')")
conn.commit() #提交數據保存到磁盤
cur.execute("select * from T_fish") #查找表里的記錄
for row in cur.fetchall():
print(row)
cur.execute("delete from T_fish where nums=10") #刪除數量為10的記錄
conn.commit() #提交結果到硬盤
print('=='*50)
cur.execute("select * from T_fish") #查找T_fish表里的記錄
for row in cur.fetchall():
print(row)
conn.close()
效果:

總結
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!
您可能感興趣的文章:- Python標準庫之數據庫 sqlite3
- python 操作sqlite數據庫的方法
- python sqlite3 判斷cursor的結果是否為空的案例
- Python 操作SQLite數據庫的示例
- python鏈接sqlite數據庫的詳細代碼實例