Last Updated on 2021-05-17 by Clay
SQLite 與一般 Server/Client 結構的資料庫不同, SQLite 被整合在應用程式當中,為一種嵌入式的資料庫,如果資料比較固定且數量不多,那麼使用 SQLite 可說是較為合適的。
今天要來紀錄的是,在 Python 當中我們要如何使用這種資料庫,如何使用簡單的 SQL 語法來進行以下指令的動作:
- 建立 Create
- 插入 Insert
- 查詢 Select
- 更新 Update
- 刪除 Delete
如果想學習 SQL 的基本語法,可以參考我之前寫過的《MySQL 心得筆記 (1) —— SELECT, FROM, WHERE, GROUP-BY, HAVING, ORDER-BY, LIMIT》。
如果想要看官方關於 sqlite3 這個 Package 的文件,可以參考: https://docs.python.org/3.6/library/sqlite3.html
連接資料庫
我們要在 Python 中使用 SQLite 這種資料庫的結構,就得使用 sqlite3 這個 package——所幸這個 package 在 Python 中是內建的,我們並不需要額外安裝。
首先,我們使用以下指令連接資料庫:
# -*- coding: utf-8 -*- import sqlite3 db = sqlite3.connect('TEST.db') cursor = db.cursor() print('Connect ok')
Output:
Connect ok
如果這個資料庫並不存在,那麼會自動在當前專案目錄建立。
建立 Create
若我們已經連接上資料庫了,那麼首先也許我們得先建立一張『表』(Table)。
# Create table cursor.execute( '''CREATE TABLE HUMAN (ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL);''') print('Table created.') db.commit()
Output:
Table created.
可以看到,我們建立起的表格名稱為 "HUMAN",有著以下欄位:
- ID
- NAME
- AGE
插入 Insert
有了表格,接下來我們需要插入資料。
# Insert cursor.execute('''INSERT INTO HUMAN (ID,NAME,AGE) VALUES (1, 'Clay', 25)''') cursor.execute('''INSERT INTO HUMAN (ID,NAME,AGE) VALUES (2, 'Wendy', 16)''') db.commit() print('Insert ok')
Output:
Insert ok
這裡我們分別插入了兩筆資料,分別是 Clay 以及 Wendy。
查詢 Select
現在我們的表裡面已經有資料,現在就來簡單地進行『查詢』這個動作。
# Select results = cursor.execute('''SELECT * FROM HUMAN''') for item in results: print(item)
Output:
(1, 'Clay', 25)
(2, 'Wendy', 16)
可以看到我們剛插入的兩筆資料現在都顯示出來了。
更新 Update
如果我們已經建立好我們的資料了,這時候卻突然有了要更新資料的需求,那麼我們可以不用刪除舊有的資料重新插入,可以直接『更新』舊有的資料。
# Update results = cursor.execute('''UPDATE HUMAN set AGE = 26 WHERE ID = 1''') db.commit() # Select results = cursor.execute('''SELECT * FROM HUMAN''') for item in results: print(item)
Output:
(1, 'Clay', 26)
(2, 'Wendy', 16)
我們可以看到,剛才還 25 歲的 Clay,現在已經變成 26 歲了。
刪除 Delete
若是我們要完全清除一筆資料,那麼我們該怎麼做呢?
# Delete cursor.execute('''DELETE FROM HUMAN WHERE ID = 2''') db.commit() # Select results = cursor.execute('''SELECT * FROM HUMAN''') for item in results: print(item)
Output:
(1, 'Clay', 26)
我們可以透過這個指令,將 ID = 2 的資料刪除。
最後別忘了,要使用以下指令關閉資料庫哦!
db.close()