接著我們要來實際體驗一下,如何操縱 MySQL 的「新增資料」、「查詢資料」、「更新資料」、「刪除資料」
新增資料的 SQL 語法為:
sql語法變數 = """
INSERT INTO 資料表名稱 (欄位1, 欄位2, ...) VALUES (數值1, 數值2, ...), (數值1, 數值2, ...)
"""
任意新增新增資料至剛新建立的「Member」資料表
import pymysql
# 連結 SQL
connect_db = pymysql.connect('localhost', port=3306, user='root', passwd='', charset='utf8', db='pydb')
with connect_db.cursor() as cursor:
sql = """
INSERT INTO Member (Name, Height, Weight) VALUES
('Alan', 170, 78),
('John', 185, 83),
('Momo', 183, 75)
"""
# 執行 SQL 指令
cursor.execute(sql)
# 提交至 SQL
connect_db.commit()
# 關閉 SQL 連線
connect_db.close()
執行後結果:
查詢資料的 SQL 語法為:
(若是查詢所有資料,欄位的部分可用星號表示「*」)
sql語法變數 = """
SELECT 欄位1, 欄位2, ... FROM 資料表名稱 WHERE 條件式
"""
查詢回傳的資料需要以 cursor 物件的兩個方法取得:
fetchall():取出全部資料
cursor.fetchall()
fetchone():取出第一筆資料
cursor.fetchone()
查詢「Member」資料表內所有資料,並印出結果
import pymysql
# 連結 SQL
import pymysql
# 連結 SQL
connect_db = pymysql.connect('localhost', port=3306, user='root', passwd='', charset='utf8', db='pydb')
with connect_db.cursor() as cursor:
sql = """
SELECT * from Member
"""
# 執行 SQL 指令
cursor.execute(sql)
# 取出全部資料
data = cursor.fetchall()
print(data)
# 關閉 SQL 連線
connect_db.close()
更新資料的 SQL 語法為:
sql語法變數 = """
UPDATE 資料表名稱 SET 欄位1=數值1, 欄位2=數值2, ... WHERE 條件式
"""
更新「Member」資料表內「John」的「Height」為 180,並再次查詢後只印出「John」的資料
import pymysql
# 連結 SQL
connect_db = pymysql.connect('localhost', port=3306, user='root', passwd='', charset='utf8', db='pydb')
with connect_db.cursor() as cursor:
sql = """
UPDATE Member SET Height=180 WHERE Name='John'
"""
# 執行 SQL 指令
cursor.execute(sql)
# 提交至 SQL
connect_db.commit()
#----------
sql = """
SELECT * FROM Member WHERE Name='John'
"""
# 執行 SQL 指令
cursor.execute(sql)
# 取出全部資料
data = cursor.fetchall()
print(data)
# 關閉 SQL 連線
connect_db.close()
刪除資料的 SQL 語法為:
sql語法變數 = """
DELETE FROM 資料表名稱 WHERE 條件式
"""
刪除「Member」資料表內「John」資料,並再次查詢後印出所有資料
import pymysql
# 連結 SQL
connect_db = pymysql.connect('localhost', port=3306, user='root', passwd='', charset='utf8', db='pydb')
with connect_db.cursor() as cursor:
sql = """
DELETE FROM Member WHERE Name='John'
"""
# 執行 SQL 指令
cursor.execute(sql)
# 提交至 SQL
connect_db.commit()
#----------
sql = """
SELECT * FROM Member
"""
# 執行 SQL 指令
cursor.execute(sql)
# 取出全部資料
data = cursor.fetchall()
print(data)
# 關閉 SQL 連線
connect_db.close()
呼,今天瞭解了資料庫的CRUD(新增(Create)、讀取(Read)、更新(Update)、刪除(Delete))後有無腦袋缺氧的感覺呢?
其實重點在 SQL 語法,要是語法不熟悉使用,也沒法運到在程式上,因此若要熟悉操作的話,基本功還是要好好打起的,事不宜遲就多閱覽實作幾次加深印象吧。