如何在Python中使用SQLite:完整指南與實用範例

本篇 ShengYu 介紹 Python SQLite 用法與範例,在開發應用程式的過程中,選擇合適的資料庫系統是至關重要的。SQLite 是一個輕量級、嵌入式的關聯資料庫系統,不需要單獨的伺服器程式來管理資料庫,非常適合用於本地資料儲存。無論你是開發手機應用、桌面應用還是小型網站,SQLite 都是一個理想的選擇。本文將詳細介紹如何在Python中使用SQLite,包括基本操作、實用範例和最佳實踐。

為什麼選擇SQLite?

SQLite 具有以下幾個顯著的優點:

  1. 輕量級:SQLite 的體積小,不會佔用太多資源,非常適合嵌入式系統和小型應用。
  2. 易於使用:不需要單獨的伺服器程式,資料庫儲存在一個檔案中,便於分發和備份。
  3. 高效:對於小型到中型的應用,SQLite 的性能表現非常優秀。
  4. 跨平台:SQLite 支持多種作業系統,包括Windows、macOS、Linux等。

Python 與 SQLite

Python 提供了 sqlite3 模組來操作 SQLite 資料庫。這個模組內建於Python標準庫中,無需額外安裝。透過 sqlite3 模組,你可以輕鬆地建立和操作SQLite資料庫。

安裝與設定

首先,確保你的開發環境中安裝了Python。大多數現代的Python版本已經預裝了 sqlite3 模組。如果你使用的是較舊版本,可以透過以下方式安裝:

1
pip install pysqlite3

建立和連接資料庫

在Python中使用SQLite非常簡單。以下是建立和連接資料庫的基本步驟:

1
2
3
4
5
6
7
import sqlite3

# 連接到資料庫(如果資料庫不存在,則會自動建立)
conn = sqlite3.connect('example.db')

# 建立遊標物件
cursor = conn.cursor()

這段程式碼會建立一個名為 example.db 的資料庫檔案。如果檔案已存在,則會連接到現有的資料庫。

建立資料表

建立資料表是操作資料庫的第一步。以下是如何建立一個簡單的使用者表:

1
2
3
4
5
6
7
8
# 建立表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER NOT NULL
)
''')

這段程式碼會建立一個名為 users 的表,包含三個字段:idnameage。其中,id 是主鍵,會自動遞增。

插入資料

向表中插入資料可以使用 INSERT INTO 語句。以下是插入兩條記錄的範例:

1
2
3
4
5
6
# 插入資料
cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Alice', 30))
cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Bob', 25))

# 送出修改
conn.commit()

使用 ? 作為佔位符,可以有效防止SQL注入攻擊。

查詢資料

要查詢資料,可以使用 SELECT 語句。以下是查詢所有使用者資料的範例:

1
2
3
4
5
6
# 查詢資料
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()

for row in rows:
print(row)

這段程式碼會輸出所有使用者的資料。

更新資料

更新資料可以使用 UPDATE 語句。以下是將名為Bob的使用者年齡更新為26的範例:

1
2
3
# 更新資料
cursor.execute('UPDATE users SET age = ? WHERE name = ?', (26, 'Bob'))
conn.commit()

刪除資料

刪除資料可以使用 DELETE 語句。以下是刪除名為Alice的使用者的範例:

1
2
3
# 刪除資料
cursor.execute('DELETE FROM users WHERE name = ?', ('Alice',))
conn.commit()

關閉連接

完成所有操作後,記得關閉資料庫連接:

1
2
# 關閉連接
conn.close()

最佳實踐

  1. 使用上下文管理器:上下文管理器 (with 語句) 可以自動處理資料庫連接的開啟和關閉,確保資源得到釋放。
  2. 防止SQL注入:始終使用佔位符 (?) 來插入變數,防止SQL注入攻擊。
  3. 定期備份資料庫:由於SQLite資料庫儲存在一個檔案中,備份非常簡單。定期備份可以防止資料丟失。
  4. 使用索引:為常用的查詢字段建立索引,可以顯著提高查詢性能。

使用上下文管理器的範例

1
2
3
4
5
6
7
8
9
import sqlite3

# 使用上下文管理器
with sqlite3.connect('example.db') as conn:
cursor = conn.cursor()
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()
for row in rows:
print(row)

這樣的寫法可以確保在操作完成後,自動關閉資料庫連接。

結論

SQLite 是一個功能強大且易於使用的嵌入式資料庫系統,非常適合小型應用和本地資料儲存。透過Python的 sqlite3 模組,你可以輕鬆地建立、操作和管理SQLite資料庫。希望這篇指南能幫助你更好地理解和使用SQLite。

如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

其它相關文章推薦
Python 新手入門教學懶人包
Python 與 MongoDB 的完美結合:詳細指南與範例
Python 中的 subprocess.run 完整指南與範例
Python subprocess.call 用法與範例解析
Python swap 用法與範例