Python 資料庫開發系列(四):SQLite資料插入、刪除和修改

更新於 發佈於 閱讀時間約 5 分鐘

上一回我們介紹了DB Browser for SQLite(DB4S),並透過DB4S進行資料庫及資料表的建立,接下來我們將回到Python,透過Python對資料庫進行資料的插入、修改及刪除。

開始前,我們先在DB4S創建一個名為Ingredient.db的資料庫,用於紀錄食品材料的庫存,資料表的欄位如下:

raw-image

建立完成後,我們在DB4S中新增以下幾筆資料:

raw-image

新增完成後,我們回到Python使用以下程式碼進行查詢驗證:

import sqlite3
con = sqlite3.connect("Ingredient.db")
cur = con.cursor()
cur.execute("SELECT * FROM ingredient;")
rows = cur.fetchall()
for row in rows:
    print(row)

執行後可以得到這個結果:

raw-image

插入資料

接下來,我們要嘗試進行資料的插入(Insert),相信各位也發現,使用sqlite3套件進行任何資料庫的操作都是使用SQL指令,所以我推薦可以設置一個變數為SQL指令的內容,比如我們現在要進行的插入(INSERT INTO)。

如果我要新增一筆牛奶的庫存資料,SQL指令內容如下:

Name = "Milk"
Amount = 3
Unit = "瓶"
sqlite_command = f"INSERT INTO ingredient(Name, Amount, Unit) VALUES ('{Name}', {Amount}, '{Unit}');"

其中因為ID是自動增值欄位,所以我們就不會特別去設定它的值,另外Name和Unit是字串所以要加上引號。

接下來我們透過這串代碼進行寫入:

cur.execute(sqlite_command)
con.commit()

執行後我們回到DB4S檢查,可以看到除了原先的三筆資料外,多了一筆Milk的資料,這樣就確實完成了插入的動作。

raw-image

刪除資料

接下來我們進行資料的刪除(DELETE)。假設我要刪除名稱為雞蛋的所有資料,代碼如下:

Name = "Egg"
sqlite_command = f"DELETE FROM ingredient WHERE Name = '{Name}';"
cur.execute(sqlite_command)
con.commit()

執行後回到DB4S進行檢查,可以看到Egg的資料已經被刪除。

raw-image

值得一提的是,就之前在工作上的經驗,通常不太會刪除資料庫的資料,會讓他一直存放在資料庫中,並且會有欄位用於標記這筆資料是否有效(如deleted),這牽涉到很多層面,比如日後要進行追蹤、保留資料作為爭議處理的依據等,主要原因是刪除的動作不可逆,被刪除的資料是難以進行(如果沒備份甚至無法)復原的。

修改資料

再來我們要進行資料的修改,又或者說更新(UPDATE)。假設我們要將麵粉的庫存改成200克,代碼如下:

Name = "Flour"
Amount = 200
sqlite_command = f"UPDATE ingredient SET Amount = {Amount} WHERE Name = '{Name}';"
cur.execute(sqlite_command)
con.commit()

執行後再回到DB4S進行檢查,可以看到Flour的數量(Amount)被修改為200。

raw-image

提醒一下大家,因為到目前為止都只是教學,一般來說在完成操作後建議關閉資料庫連線,至於原因為何之後會再跟大家補充:

con.close()

下一步

這一回我們學會了如何透過程式碼對資料表進行插入(INSERT)、刪除(DELETE)及更新(UPDATE)。不知道各位有沒有想過,如果我們要新增一個供應商的欄位應該要如何設置?供應商可能包含了名字、電話及地址等資訊,這種情況我們會使用外鍵(Foreign Key)來處理,所以下一回我們將會學習外鍵的設置與使用。


留言
avatar-img
留言分享你的想法!
avatar-img
SlimeE的沙龍
0會員
5內容數
努力向上中,試著將所學的東西分享出來。
SlimeE的沙龍的其他內容
2025/06/10
上一篇我們介紹了如何在Python中使用sqlite3進行SQLite資料庫的創建,並進行了簡易的驗證,結尾我們提到了:怎麼知道資料表真的建立成功了?有沒有更直觀的方式可以查看和管理資料庫? 於是我們這次要來介紹一個好用的工具──DB Browser for SQLite(DB4S)。 DB B
2025/06/10
上一篇我們介紹了如何在Python中使用sqlite3進行SQLite資料庫的創建,並進行了簡易的驗證,結尾我們提到了:怎麼知道資料表真的建立成功了?有沒有更直觀的方式可以查看和管理資料庫? 於是我們這次要來介紹一個好用的工具──DB Browser for SQLite(DB4S)。 DB B
2025/06/03
上一篇我們簡單介紹了SQLite的概述及應用,這次我們將介紹如何使用Python的sqlite3套件進行資料庫及Table的創建。 創建資料庫 首先,我們需要先創建資料庫的檔案: import sqlite3 con = sqlite3.connect("tutorial.db") 透過sq
2025/06/03
上一篇我們簡單介紹了SQLite的概述及應用,這次我們將介紹如何使用Python的sqlite3套件進行資料庫及Table的創建。 創建資料庫 首先,我們需要先創建資料庫的檔案: import sqlite3 con = sqlite3.connect("tutorial.db") 透過sq
2025/05/28
在Python開發中,我們經常需要儲存或讀取外部資料,最常見的做法是使用Excel檔案(csv、xlsx),透過pandas讀取整個檔案到記憶體。然而,當資料量變得龐大時,這種方式會遇到幾個問題:占用大量記憶體、處理速度變慢,甚至有可能因為檔案過大而導致程式沒有回應。為了解決這些問題,我們可以使用S
2025/05/28
在Python開發中,我們經常需要儲存或讀取外部資料,最常見的做法是使用Excel檔案(csv、xlsx),透過pandas讀取整個檔案到記憶體。然而,當資料量變得龐大時,這種方式會遇到幾個問題:占用大量記憶體、處理速度變慢,甚至有可能因為檔案過大而導致程式沒有回應。為了解決這些問題,我們可以使用S
看更多
你可能也想看
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
常常被朋友問「哪裡買的?」嗎?透過蝦皮分潤計畫,把日常購物的分享多加一個步驟,就能轉換成現金回饋。門檻低、申請簡單,特別適合學生與上班族,讓零碎時間也能創造小確幸。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
如何用Python將DataFrame中的資料擷取維新的DataFrame?
Thumbnail
如何用Python將DataFrame中的資料擷取維新的DataFrame?
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
本文介紹了如何使用資料樞紐分析的功能來整理所需的資料,並設定圖表的中文字型,最後提供了繪圖的程式碼範例。
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
本文介紹瞭如何使用 Python pandas 進行資料分析,包括如何使用 corr() 函數針對數字類型的欄位進行分析,以及如何刪除不需要的欄位和取得想要的小數位數。
Thumbnail
如何用Python匯入大批Excel檔案? os.listdir建立資料夾內[檔案名稱.副檔名]之列表 利用迴圈將所有檔案匯入Python 用pandas.concat合併所有DataFrame
Thumbnail
如何用Python匯入大批Excel檔案? os.listdir建立資料夾內[檔案名稱.副檔名]之列表 利用迴圈將所有檔案匯入Python 用pandas.concat合併所有DataFrame
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News