《資料操作 101》SQL 應用介紹 (1)|資料庫操作工作坊規劃心得

Shu-Ting | 資料科學漂流者
ccClub
Published in
9 min readMay 24, 2024

2024 年 3 月 30 日當天,包含營運專員 OPS、客戶成功顧問 MS 及產品經理 PM 等四個職能小組在 8 分鐘的短講中,都提出了有趣且富同理心的洞察,讓《資料庫操作思維工作坊》能以圓滿之姿順利落幕。

最令人振奮的是,在短短一個月的三次工作坊活動中,絕大多數的參與者都是從零基礎開始,將能力逐步堆疊到可以運用 Subquery/CTE 處理複雜邏輯,並能從資料中挖掘問題並找尋洞見。可以說善用了 SQL 的美妙,自在地遨遊在資料汪洋裡。

圖/工作坊職能小組簡報合影留念。簡書廷攝。

究竟這樣的學習路徑是如何鋪疊而成的?且看本文揭曉。

一、背景|活動起源
二、理念|想讓參與者獲得什麼 (2021)
三、沿革|撈撈哥撈撈姊入門 (2022)
四、進化|真正理解資料意涵 (2023)
五、突破|職能小組學習表達 (2024)
六、結語|技術與思維的雙軌並進

背景|活動起源

2021 年秋天,我參加的 Python 程式教育組織 ccClub 收到了 TMBA 策略行銷部(跨校、跨系所的 MBA 研究生社團)的邀約,希望我們能設計一系列的資料科學課程讓學員能累積數據分析的能力。談到資料科學當然不能少了『資料庫』的部分,於是我負責了其中一堂 3 小時的 Database Introduction 的規劃。

此時的我大概有兩年多的資料工作經驗,資料庫操作已經是工作日常了,不過大部分的 SQL 知識都是在工作中逐步累積,還有前同事 Xavier 以 DBA 的經驗親授訣竅。還真沒有完整跟過一堂 SQL 課程的體驗,所以這堂課大概只能嘗試彙整自己的經驗,從零開始規劃了。

理念|想讓參與者獲得什麼

產品經理需要資料來定義產品表現,業務開發需要資料來追蹤業績表現,營運人員需要資料定義營運現況及策略方向,行銷人員需要資料追蹤方案成效。兩年多的工作經驗帶給我的體悟是,每個部門都有資料需求,但缺乏對資料庫長相的背景認知。以下列出來的問題可以統稱為「資料瓶頸」:

  • 擁有資料,但卻不知從何下手針對定義問題或對資料進行分析
  • 想用資料解決一些事,但卻不知道如何有效率的獲取資料
  • 不需要親手寫程式,但是在與資料人員合作時溝通的過程中因為背景知識落差,導致協作不順利

諸如此類的『認知落差』遠比想像的更大,要用一堂課突破瓶頸確實不容易。為了兼具教學可行性與學習成就感,課程的初步設計理念就訂在「能夠使用 SQL 做資料撈取」,只要有個使用者友善的介面,參與者就能透過課堂所學的指令進行資料撈取及轉換。

Photo by krakenimages on Unsplash

沿革|撈撈哥撈撈姊入門

方向訂下來了,如何實現這樣的目標呢?

這次我們使用了 SQL Online 做為練習介面,只要把預先準備的資料透過介面點選匯入,就能夠順利使用 SQL 語句來操作資料了。針對資料操作語法 (DML, Data Manipulation Language) 的部分,我從下方這個基本結構作為解說基底,把基本的操作語句對應的意涵都解釋清楚。

圖/SQL 語句基本結構 — 摘自 2021 資料科學課程 Week5 。簡書廷製。

我心想,搭配初階探索練習『掌握關鍵數量』與進階練習『利用數量比對幫助決策』,應該就能讓參與者快速應用上基礎語法撈出對應的資料並解讀了吧?

大錯特錯!

扣除資料庫特性簡介與最後的資料科學心法,剩餘大約一個半小時要順利的理解資料、打出語句並執行出正確結果,完完全全不夠。

原因是,在打出語句之前,得先確實瞭解資料欄位的意義,才有辦法拆解問題進而回應。這也正巧回應到現代資料平台建構上,常被討論的資料治理 (data governance) 其中一環:「資料目錄」(data catalog)。沒有這樣的目錄提供資料定義,縱使熟稔語法的人也很難動手寫出 SQL 語句,更遑論是資料初心者了呢。

Photo by Thought Catalog on Unsplash

於是,在隔年 2022 年第二次進行課程時,我預先準備了一份「資料庫欄位意涵」的檔案,希望能讓大家提前掌握課程資料集背後的意涵。不過在三個小時中,還是感受到學員無法跟上設定的步調。

我驚覺,正如我在《女棒教練系列文 9》 提到的學習 S 曲線一樣,在學習 SQL 的路途上,縱使掌握了欄位的意義,到寫出正確語法之間,還是存在蠻多需要克服的階梯,幫助我們能夠逐步地貫通實際商業問題與 SQL 語句間的聯通隧道。

圖/語法技術程度階梯圖-摘自 2024 資料庫操作思維工作坊宣傳。簡書廷製。

原來,對於那些「能順利撈取資料但無法做出近一步詮釋」的人,也就是大家口中所說的資料『撈撈哥撈撈姊』其實也沒這麼一蹴可及。就算要撈,我們也得先奠定基礎才行。

也就是說,學員無法跟上步調,可能是缺乏了如 「撈出所有的用戶名單」這樣只需要 SELECT 和 FROM 的語句,甚至連 WHERE 都沒用上的入門 101 但回饋感明確的基礎練習。

-- 撈出所有的用戶名單
SELECT
*
FROM
users
;

經過兩次 3 小時課程之後,我才恍然大悟。從來就不需要擔心課程內容太簡單,該操心的是「練習時間不足」導致的吸收速度不如預期!但,過往在資料科學的六週系列課程中,只能分到一堂 3 小時的資料庫,有辦法再放緩腳步,增加練習嗎?

進化|真正理解資料關聯

時序進到 2023 年,我們把資料庫課程獨立出來,擴充為 3 堂共 9 小時的系列活動。除了時間上更加充裕以外,我們改採 DBeaver 這個資料庫管理工具,取代了 SQL Online,作為此次系列課程的操作介面工具。

引入 DBeaver 的主因是能夠將實體關聯圖 (ER-Diagram) 視覺化,並且能夠利用 Foreign Key 欄位的按鈕,在表與表之間輕鬆跳轉。這些特性對於遨遊「關聯式資料庫」非常重要,比起直接寫 JOIN 語句,先透過視覺化跳轉的方式掌握資訊,有助於理解資料全貌。

先是真正理解資料之間的關聯。再來理解如 INNER JOIN、LEFT JOIN 等跨表操作的技巧,我們能夠結合不同的資料表,從而獲得更全面、更深入的資訊。這不僅僅是技術的進步,更是對於資料的理解和應用能力的進化。

在這擴充成 9 小時的系列課程中,學員們從基本單表操作、統計、跨表連結,一路走到進階的 Subquery/CTE,能回答的問題也從「共有多少位在學用戶」提升成「如何偵測使用者流失的情況」這類更為繁複的商業情境。

這樣的成效彰顯出課程的幾項重大變革確實讓學習曲線變緩,參與者能夠穩定地習得資料庫的操作知識與拆解複雜問題的思維。

突破|職能小組學習表達

不過,除了教學、練習與解決問題外,總覺得還缺乏讓學習者「主動表現」的環節。既然學員都在這份資料海裡針對各式問題進行操作與解答了,我們何不安排分組專案,讓大家一改被動地拆解預先設計的問題,而是主動地定義分析情境及梳理問題呢?

在 2024 年,我們將 9 小時的系列課程擴充為 12 小時的工作坊活動,不只是被動地接受知識,更需要積極地參與討論、分享和合作。透過扮演不同職能角色,進行小組討論和實際案例練習,打造獨特的資料儀表板或產出報表。最後利用 5 分鐘的短講機會,發表自己職能角度的資料洞察,並與其他小組交流心得。

圖/課程大綱-摘自 2024 資料庫操作思維工作坊宣傳。簡書廷製。

由於大家是在同一個資料庫中探索,不同職能角色可能會利用不同的表結合或指標定義,這樣的差異正是群體學習的珍貴寶藏!

結語|技術與思維的雙軌並進

以下摘自一位參與者的心得回饋:

在前三堂課介紹語法後,最後一堂課安排小組報告,可以學習如何從資料中洞察問題。

面對觀察到的問題能夠提出資料分析數據佐證,同時利用前面學到的 SQL 找到相對應的數據,過程很有趣。

雖然是同一份資料,大家切入的角度都不同,分析的方向也都不一樣,可以發現自己從來沒注意到或沒想過的想法。

非常開心能收到這樣的回饋,顯示工作坊活動中的資料庫概念理解基礎練習職能洞察報告環節疊加起來,足以讓參與者挑戰自己在資料中發現見解的能力,並學習如何正確地將資訊和策略傳達給不同背景的受眾。

頻藉著過去的工作經驗,以及一次次的學習者回饋,讓這次工作坊一改過去的「授課感」,最後反倒是參與者提出許多我也未曾想過的面向,真的獲益良多。同時,將單向的學習課程打造成雙向的工作坊活動,並看著參與者把寫 SQL 與操作資料表這類較為技術感的事,變成在資料海裡玩樂與遨遊。令人非常充實且滿足。

圖/SQL 學習路線規劃隨時間的推進。簡書廷製。

我始終認為,不論是營運專員、客戶成功顧問、產品經理,還是任何其他需要接觸資料的職務,具備「資料思維」對於跨域溝通和解決問題都相當有幫助。期待《資料庫操作思維工作坊》能夠於近期再次與大家見面!歡迎大家透過 LinkedIn: Shu-Ting Chien 或是 Instagram: shuting.coach 聯繫我,交流更多關於 SQL 學習之路的訊息!

ccClub 團隊的理念是利用循序漸進的方式,降低學習門檻,
讓所有充滿熱情的新手能夠一步步跨入程式設計的世界。
團隊於每年 3 月與 9 月辦理 Python 基礎班課程,目前已辦理 14 期,參與學員逾 3,000 人。

因應歷屆校友最常許願「開設更多類型的進修課程」,
我們在 2024 年推出【資料庫操作思維 — SQL 使用】實體工作坊,
希望能延續大家學習基礎 Python 的好體驗,
用淺顯易懂的方式,帶領新手穩定地習得資料庫的操作知識與解決問題的思維。

Facebook: ccClub Python讀書會

--

--

Shu-Ting | 資料科學漂流者
ccClub
Writer for

資料科學 | 軟體開發 | 職涯經驗 | 教練筆記