iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
1
Software Development

糊裡糊塗Python就上手系列 第 18

[2020鐵人賽Day18]糊裡糊塗Python就上手-MySQL操作探險歷程(下)

今日目標

接著我們要來實際體驗一下,如何操縱 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()

https://ithelp.ithome.com.tw/upload/images/20201003/20091333teWJLHVukD.png

執行後結果:
https://ithelp.ithome.com.tw/upload/images/20201003/2009133388oAaWYZ5w.png


「查詢資料」

查詢資料的 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()

https://ithelp.ithome.com.tw/upload/images/20201003/20091333G3njSCsyYa.png


「更新資料」

更新資料的 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()

https://ithelp.ithome.com.tw/upload/images/20201003/20091333L18B6FXKuP.png


「刪除資料」

刪除資料的 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()

https://ithelp.ithome.com.tw/upload/images/20201003/20091333305WYdedyw.png

結論

呼,今天瞭解了資料庫的CRUD(新增(Create)、讀取(Read)、更新(Update)、刪除(Delete))後有無腦袋缺氧的感覺呢?
其實重點在 SQL 語法,要是語法不熟悉使用,也沒法運到在程式上,因此若要熟悉操作的話,基本功還是要好好打起的,事不宜遲就多閱覽實作幾次加深印象吧。


上一篇
[2020鐵人賽Day17]糊裡糊塗Python就上手-MySQL操作探險歷程(上)
下一篇
[2020鐵人賽Day19]糊裡糊塗Python就上手-蟲蟲進擊之爬蟲取得資訊(上)
系列文
糊裡糊塗Python就上手30

尚未有邦友留言

立即登入留言