python 操作 sqlite 數據庫的步驟如下:1. 使用 sqlite3.connect() 連接數據庫并創建文件;2. 通過 cursor 執行 sql 創建數據表;3. 使用參數化查詢插入、更新、刪除數據;4. 用 select 查詢記錄并處理結果;5. 操作完成后調用 commit() 提交更改并關閉連接。整個過程無需額外安裝依賴,適合小型項目和本地開發。
SQLite 是一種輕量級的嵌入式數據庫,非常適合小型項目、本地開發或者作為移動應用的數據存儲。python 內置了對 SQLite 的支持,所以不需要額外安裝驅動或依賴庫就可以直接使用。
下面我們就來看看怎么用 Python 操作 SQLite 數據庫。
連接數據庫和創建表
首先,我們需要連接到一個數據庫文件。如果這個文件不存在,Python 會自動幫我們創建一個新的。
立即學習“Python免費學習筆記(深入)”;
import sqlite3 conn = sqlite3.connect('example.db')
接下來,我們可以通過 cursor 對象來執行 SQL 語句,比如創建一張表:
cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id Integer PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER ) ''') conn.commit()
上面這段代碼做了幾件事:
- 創建了一個名為 users 的表(如果已經存在就不會重復創建)
- 定義了三個字段:自增主鍵 id、非空字符串 name、整數 age
- 最后調用了 commit() 提交更改
別忘了操作完成后關閉連接:
conn.close()
插入數據和查詢結果
插入數據可以用 INSERT INTO 語句,這里建議使用參數化查詢來防止 SQL 注入:
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Alice", 25)) conn.commit()
查詢也很簡單,例如查找所有用戶:
cursor.execute("SELECT * FROM users") rows = cursor.fetchall() for row in rows: print(row)
如果你只想查一條記錄,可以使用 fetchone():
row = cursor.fetchone() print(row)
記得每次執行完查詢或修改后都要檢查是否需要調用 commit(),尤其是涉及寫操作時。
更新和刪除數據
更新數據使用 UPDATE 語句,同樣推薦使用參數綁定:
cursor.execute("UPDATE users SET age = ? WHERE name = ?", (30, "Alice")) conn.commit()
刪除數據使用 delete 語句:
cursor.execute("DELETE FROM users WHERE name = ?", ("Alice",)) conn.commit()
這兩個操作都會修改數據庫內容,所以一定要記得調用 commit(),否則不會生效。
小貼士和注意事項
-
數據庫連接要關閉:雖然 Python 在程序結束時會自動關閉連接,但最好手動調用 conn.close(),避免資源泄露。
-
使用上下文管理器更安全:可以用 with 來自動提交事務或回滾錯誤。
with sqlite3.connect('example.db') as conn: cursor = conn.cursor() cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Bob", 22))
-
字段類型靈活:SQLite 是弱類型的,即使你定義了字段為 INTEGER,也可以存字符串進去,但不建議這么做,容易出錯。
-
適合小規模數據:SQLite 不適合高并發寫的場景,但讀操作表現還不錯。
基本上就這些。SQLite 簡單好用,適合快速搭建原型或者做本地工具的數據存儲,配合 Python 基本上不需要太多配置就能開始用了。