Python/ target=_blank class=infotextkey>Python是一種流行的編程語言,可以用于開發各種應用程序,從圖形用戶界面到網站和游戲。Python的一個特點是,它內置了一個輕量級的關系型數據庫SQLite,它可以提供快速、簡單的數據存儲和檢索。本篇博客將介紹Python內置數據庫SQLite的特點、用法和一些實用技巧,幫助讀者更好地利用它來構建全面的應用程序。
1. 初識SQLite
SQLite是一個輕量級的數據庫,它不需要單獨的服務器進程,可以直接嵌入到Python程序中。Python內置了對SQLite的支持,內置庫不需要安裝,我們可以通過SQLite3模塊來使用SQLite數據庫。
SQLite數據庫使用的.db文件是一種數據庫文件,屬于二進制文件類型。它是由SQLite引擎創建和管理的,用于存儲和管理數據。SQLite數據庫文件包含了表格、行和列等結構化數據,并提供了對這些數據的讀取、寫入和查詢等功能。
SQLite數據庫文件的特點如下:
- 單個文件:SQLite數據庫通常由單個.db文件組成,包含了所有的表格和數據,沒有額外的配置文件或目錄。
- 壓縮格式:SQLite數據庫文件使用了一種專有的壓縮格式,可以有效地壓縮和存儲大量的數據。
- 跨平臺可移植性:SQLite數據庫文件可以在不同的操作系統上進行共享和使用,包括windows、linux、mac等。
- 零配置:創建和使用SQLite數據庫文件通常不需要進行任何額外的配置或服務器設置,只需使用合適的庫或工具即可。
由于SQLite數據庫文件是二進制格式,并且具有一定的文件結構和格式,所以通常需要使用專門的SQLite數據庫引擎或相關的工具才能正確地讀取、寫入和操作這些文件。
2.牛刀小試
import sqlite3
# 連接到數據庫
conn = sqlite3.connect('example.db')
# 創建一個游標對象
cursor = conn.cursor()
# 執行一個查詢
cursor.execute('SELECT SQLITE_VERSION()')
# 打印查詢結果
data = cursor.fetchone()
print("SQLite version:", data)
# SQLite version: ('3.40.1',)
# 關閉連接
conn.close()
3. Sqlite的增刪改查
以下是一個簡單的SQLite使用示例:
import sqlite3
# 連接到數據庫
conn = sqlite3.connect('user.db')
# 創建一個游標對象
cursor = conn.cursor()
# 創建表格
# 創建一個名為students的表,包含id、name和age三個字段
cursor.execute('''CREATE TABLE students (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
# cursor.execute('''CREATE TABLE stocks
# (date text, trans text, symbol text, qty real, price real)''')
# 插入數據
# 向students表中插入一條數據
cursor.execute("INSERT INTO students (name, age) VALUES ('張三', 20)")
# cursor.execute("INSERT INTO stocks VALUES ('2022-10-28', 'BUY', 'GOOG', 100, 490.1)")
# 保存更改
conn.commit()
# 關閉連接
conn.close()
在上述例子中,我們新建了一張表,并且插入了一條數據,但是我們一般是打不開這個文件的,需要借助插件來查看數據文件;這個時候需要安裝一個插件:
SQLite3 Editor
如下所示:
然后就可以預覽剛才數據的操作:
建表完成之后就可以進行數據的增刪改查。
(1) 查詢數據
import sqlite3
# 連接到數據庫
conn = sqlite3.connect('user.db')
# 創建一個游標對象
cursor = conn.cursor()
# 查詢users表中的所有數據
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()
# 打印查詢結果
for row in rows:
print(row)
# 關閉連接
conn.close()
# (1, '張三', 20)
(2) 更新數據
import sqlite3
# 連接到數據庫
conn = sqlite3.connect('user.db')
# 創建一個游標對象
cursor = conn.cursor()
# 更新users表中id為1的數據的name字段為'李四'
cursor.execute("UPDATE students SET name=? WHERE id=?", ('李四', 1))
# 查詢users表中的所有數據
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()
# 打印查詢結果
for row in rows:
print(row)
# 關閉連接
conn.close()
# (1, '李四', 20)
(3) 刪除數據
import sqlite3
# 連接到數據庫
conn = sqlite3.connect('example.db')
# 創建一個游標對象
cursor = conn.cursor()
# 刪除users表中id為1的數據
cursor.execute("DELETE FROM students WHERE id=?", (1,))
# 提交更改并關閉連接
conn.commit()
conn.close()
(4) 提交事務
conn.commit()
(5) 關閉游標和連接
cursor.close()
conn.close()
總結
Python內置的SQLite數據庫具有自包含、跨平臺、無服務器和易于使用的特點,可以幫助開發人員快速創建和維護小型數據庫應用。此外,Python語言自身也提供了豐富的模塊和庫,可以與SQLite無縫協作,非常方便。在此基礎上,我們可以嘗試更高級的數據庫技術,如ORM(對象關系映射)、數據庫遷移和分布式系統構建等。相信有了這篇博客的幫助,您對Python內置的SQLite會有更深入的了解并深受裨益。