幾行代碼教你操作小型數據庫 SQLite
SQLite介紹
SQLite 是一款輕型、小巧、高效的關系型數據庫管理系統,它可以在任何操作系統中運行。而且它的驅動程序也非常豐富,各種語言都有對應的驅動。
這里我們使用 Python 自帶的 sqlite3 模塊來演示如何使用 Python 操作 SQLite 數據庫。
引入模塊
使用 Python 操作 SQLite 需要先引入 sqlite3 模塊。
import sqlite3
連接數據庫
連接 SQLite 數據庫可以使用 connect() 方法,它有一個必需參數是數據庫文件名,如果文件不存在則會自動創建,如果文件存在則會連接該文件。
# 連接或創建數據庫
conn = sqlite3.connect('test.db')
connect() 方法還可以有其他參數,例如 timeout,它表示在等待某個鎖的時間內如果沒有成功,則會拋出 sqlite3.BusyError 異常。
創建表
創建表可以執行 SQL 語句,也可以使用 Python 操作數據庫的 API。
# 創建表
conn.execute('''
CREATE TABLE if not exists company
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);
''')
插入數據
插入數據需要使用 INSERT 語句,語法為:
conn.execute(f"INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)
VALUES ({id}, '{name}', {age}, '{address}', {salary})")
或者使用參數化 SQL 語句,語法為:
conn.execute("INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY) VALUES (?, ?, ?, ?, ?)",
(id, name, age, address, salary))
其中 ? 表示占位符,后面的元組中為需要插入的數據。
查詢數據
查詢數據需要使用 SELECT 語句,語法為:
cursor = conn.execute("SELECT ID, NAME, AGE, ADDRESS, SALARY FROM company")
for row in cursor:
print(f"ID = {row[0]}, NAME = {row[1]}, AGE = {row[2]}, ADDRESS = {row[3]}, SALARY = {row[4]}")
更新數據
更新數據需要使用 UPDATE 語句,語法為:
conn.execute(f"UPDATE company SET SALARY = {salary} WHERE ID = {id}")
刪除數據
刪除數據需要使用 DELETE 語句,語法為:
conn.execute(f"DELETE from company where ID = {id}")
提交事務
Python 操作 SQLite 數據庫自動開啟一個事務,如果要提交事務,需要使用 commit() 方法。
conn.commit()
關閉數據庫連接
不需要訪問數據庫時,需要關閉連接。
conn.close()
總結
通過上述代碼可以看出,使用 Python 操作 SQLite 數據庫非常簡單,只需要使用一些簡單的 SQL 語句或者 Python API 就可以完成增刪改查等操作。SQLite 數據庫的優點是體積小、運行速度快,尤其適合一些嵌入式設備或需要大量讀寫的場景。