用 Python 連結 Cloud SQL

Google Cloud Platform 學習筆記 — Day2

Jason Tsai
4 min readAug 4, 2022

這篇文章將介紹如何透過 Python 對資料庫下指令,並透過 MySQL Workbench 檢視變化。

Google Cloud Platform 學習筆記 - Day1 中,我們介紹了如何在 GCP 上建立自己的資料庫。而今天我們希望透過 Python 對雲端資料庫下指令。

首先需要 import pymysql 套件、並設定 DB 的相關資訊:

完成基礎的設定後,我們就可以透過 pymysql 來建立與 DB 的連線啦,程式碼如下:

  • line 2:連線到 MySQL 資料庫
  • line 4:建立控制器 (游標) 來對資料庫下指令
  • line 5–9:建立 Table 的 query
  • line 12:利用 cursor 執行 query
  • line 13:透過 commit 儲存改變
  • line 15–16:關閉 cursor 與 connection (conn)

接著可以透過 MySQL Workbench 可以發現我們確實建立了名為 news 的 Table (欄位有 Date、Title、Type三項)。

表格建立成功後,緊接著就要匯入資料啦。我們先寫一支爬蟲程式,作為後續 Insert data 的來源,程式碼如下:

關於這段程式碼的介紹,有興趣的朋友可以參考 讓聊天機器人開啟爬蟲技能! 這篇文章。

簡而言之,上方程式碼可以幫我們爬取熱門新聞的標題和對應的新聞種類,並將其儲存到 list 物件當中。

準備完成後我們就可以將資料 Insert 到資料庫了,程式碼如下:

  • line 5:Insert data 的 query
  • line 7:取程式執行的日期作為時間標記
  • line 9–10:透過迴圈重複執行 query 將資料輸入 DB 當中
  • line 18–19:印出例外狀況 (錯誤) 的詳細資訊

執行後可以再回到 MySQL Workbench 查詢資料是否有 Insert 成功:

如果要透過 Python 查詢資料也是可以的,程式碼如下:

  • line 12:透過 fetchmany(n) 取得多筆資料並存成 result
  • line 13–14:透過迴圈一列一列印出資料

註:取值除 fetchmany 外,還有 fetchone 以及 fetchall 兩種。

結果如下:

進行到這邊,我們已經可以透過 Python 寫入 & 讀取資料庫。接著看一下資料該如何修改

  • line 9:將 Type 為 "鉅亨新視界" 的資料改為 "新視界"

再透過 MySQL Workbench 查詢修改是否完成:

最後來說明要如何刪除 Table 內特定的資料吧!程式碼如下:

  • line 7:刪除特定資料列的 query
  • line 7:將 Type 為 “美股雷達” 的資料刪除

再到 MySQL Workbench 中下 query 可以發現的確沒有 Type 為 “美股雷達” 的資料囉:

到這邊我們已經可以透過 Python 對雲端資料庫下指令囉!

感謝觀看。

--

--

Jason Tsai

Data Analyst in financial industry with experience as Tableau consultant and DA at Martech field.