iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
1
Software Development

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

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

今日目標

那 Python 能不能連結 MySQL 操作呢?
答案是可以的,今天就讓我們來了解一下

What is MySQL?

MySQL 是一套快速、功能強大的關聯式資料庫管理系統,目前 MySQL 是 甲骨文Oracle 旗下的產品
MySQL 隨著時間不斷成熟,目前已經成為最主流的開源資料庫,廣泛地應用在網路上的中小型網站中,也逐漸用於更多大規模網站和應用。

事前作業

由於作者本人使用的主環境是 PostgreSQL,因此使用虛擬作業系統的方式,虛擬出 Windows 系統來做說明
在 Windows 快速安裝 Web service 整合包,就會有包含 MySQL 在裡頭
而這邊我們選擇 XAMPP 來做安裝,以快速架起擁有 MySQL 的環境
XAMPP官方網站
XAMPP下載點

下載後,按照安裝程式步驟點擊下一步安裝即可
之後執行XAMPP會出現以下畫面:
https://ithelp.ithome.com.tw/upload/images/20201002/20091333GUxsoTJvVC.png

點擊 Apache、MySQL 的「Start」
https://ithelp.ithome.com.tw/upload/images/20201002/20091333MYIJ1qSzNm.png

之後點擊 MySQL 的「Admin」就可到 phpMyAdmin 管理介面
https://ithelp.ithome.com.tw/upload/images/20201002/20091333SjXQP6UY4f.png

為了之後操作方便,先使用 phpMyAdmin 建立個新資料庫,命名為「pydb」
https://ithelp.ithome.com.tw/upload/images/20201002/20091333uvb5BcZIel.png

實際體驗

安裝 PyMySql 模組

Anaconda 安裝畫面:
https://ithelp.ithome.com.tw/upload/images/20201002/20091333Stp1XaaRYI.png

pip 指令安裝:

pip install pymysql

https://ithelp.ithome.com.tw/upload/images/20201002/20091333emNxD0dRlp.png

導入 PyMySql 模組

import pymysql

連接 MySQL

連接 MySQL 的語法如下:
(MySQL 預設 port 號為 3306)

連結物件變數 = pymysql.connect('伺服器位置', port=3306, user='使用者名稱', passwd='使用者密碼', charset='utf8', db='資料庫名稱')

實際操作語法:

# 連結 SQL
connect_db = pymysql.connect('localhost', port=3306, user='root', passwd='', charset='utf8', db='pydb')

執行 SQL 指令

若是要執行 SQL 指令,需要使用 cursor() 方法來執行,並在之後提交(commit)至 SQL,接著再關閉 SQL 連線

SQL 執行語法如下:

with 連結物件變數.cursor() as cursor:
    cursor.execute(sql語法)
    連結物件變數.commit()
連結物件變數.close()

建立資料表

建立資料表的 SQL 語法為:

sql語法變數 = """
CREATE TABLE 資料表名稱 (
欄位名稱 資料型態 其餘規則,
)
"""

讓我們現在來建立 Member 資料表,將有「ID」、「Name」、「Height」、「Weight」四個欄位,並把「ID」設定為自動編碼(AUTO_INCREMENT)及主鍵(PRIMARY KEY)

import pymysql

# 連結 SQL
connect_db = pymysql.connect('localhost', port=3306, user='root', passwd='', charset='utf8', db='pydb')

with connect_db.cursor() as cursor:
    sql = """
    CREATE TABLE IF NOT EXISTS Member(
        ID int NOT NULL AUTO_INCREMENT PRIMARY KEY,
        Name varchar(20),
        Height int(6),
        Weight int(6)
    );
    """
    
    # 執行 SQL 指令
    cursor.execute(sql)
    
    # 提交至 SQL
    connect_db.commit()

# 關閉 SQL 連線
connect_db.close()

https://ithelp.ithome.com.tw/upload/images/20201002/20091333vMMeobFy8P.png

執行後,讓我們在 phpMyAdmin 管理介面,看看有無成功新增此資料表
https://ithelp.ithome.com.tw/upload/images/20201002/20091333NZTqMtoJla.png

結論

這只是上篇的開胃菜,在下篇會介紹如何「新增資料」、「查詢資料」、「更新資料」、「刪除資料」


上一篇
[2020鐵人賽Day16]糊裡糊塗Python就上手-Python Excel 操縱套餐(使用openpyxl)
下一篇
[2020鐵人賽Day18]糊裡糊塗Python就上手-MySQL操作探險歷程(下)
系列文
糊裡糊塗Python就上手30

尚未有邦友留言

立即登入留言