[數據分析#27] 掌握 7 個步驟,才可能快速學好 SQL

我第一次學習 SQL 的時後,是在 Coursera SQL for Data Science 上學這門專門針對資料科學設計的 SQL 課程,這一門課加上所有的作業練習,我大概花了 2 周,接著就錄取了下一份工作 – 數據分析師。

在使用公司的數據庫時,花了大約 1 天左右完成所有考試,包括了解公司的資料庫結構、了解資料表存取了哪些資料,也總算是弄懂了基本的 SQL 語法,這其間也多虧有左右的同事幫忙。

大概在錄取後 1 個月,我就算是能夠自在的使用 SQL 語言,也在接下來工作的這 1 年,大量使用 SQL 語言,完成比較複雜的 SQL 處理:像是 json 的處理、Cohort 分析所需要的資料錯位處理等等。總之,SQL 的學習,我覺得比起其它更複雜的程式語言,不算太難,一般非理科的學生們應該也可以快速學會,只要了解 SQL 和資料庫的邏輯,並且掌握以下關鍵的 7 個重點,就能比較輕鬆的學會!

什麼是 SQL?他是用來做什麼的?

  • SQL 是一種程式設計語言
  • 資料庫用 SQL 這個語言來叫出想知道的訊息
  • SQL (一種語言) 用來查詢資料庫 (database) 裡的資料表 (table),也可以存取、刪除資料
  • SQL 有幾個分支:MySQL、SQLlite….,不過大體來說,語法大致上相同,只要學習一種之後,其它分支的語法在網路上也很容易查到

關於 SQL,我們要知道:學習 SQL 的目的,是因為資料庫很大 (database),資料表 (table) 很多,我要怎麼叫出我想要的欄位,或是我想要的特定資料?那就是用 SQL 跟他溝通!

掌握資料庫的結構為什麼很重要?

  • 資料庫 (database) 像一個大倉庫,資料表 (table) 是倉庫裡的箱子,箱子裡面有成列排好的資料 (value),要先在腦海裡有這個結構,之後比較複雜的資料表 (table) 跟 資料表 (table) 之間的關係,或是資料庫 (database) 跟資料庫 (database) 之間的關係,才能夠加以理解
  • 接著,了解這個資料庫裡面儲存什麼資料?
  • 接著,了解資料表有幾張?裡面有哪些 key 是可以相互連接的?
    • 例如:A 表儲存客戶資料 (欄位包含:客戶編號、客戶基本資料),B 表儲存訂單資料 (欄位包含:訂單編號、客戶編號),客戶編號就是其中可以連接彼此的 key,我可以透過客戶編號這個 key 把 A 表和 B 表的資料連在一起
  • 最後,補充一下,資料表的結構,目前關聯式資料庫最為常見,又分為非結構化和結構化
    • 結構化:
    • 非結構化:
    • 我覺得這一點先放在心裡就好,一開始在使用的時候,如果你不是專門在設計資料庫的 Data Enginner 或是 Business Intelligence Analyst,就只要了解:資料庫裡面儲存什麼資料?了解資料表有幾張?裡面有哪些 key 是可以相互連接的?

資料庫裡面儲存什麼資料?

了解資料表有幾張?裡面有哪些 key 是可以相互連接的?

這是初學者在應用前要知道的重點

為什麼要知道儲存在資料庫裡的資料,在業務上代表的意義?

  • 資料庫裡儲存的資料,通常都是在記錄一個實際產生的行為或是斷點
    • 例如:A 客戶,0:00 下單一個漢堡,0:01 餐廳接單開始製作,0:10 司機到了餐廳準備取餐,0:15 開始外送,0:20 送到 A 客戶手中。資料庫會紀錄這每一個實際產生的行為 (下單、到店、開始外送、送達),也會紀錄每個斷點 (0:00、0:01……)
  • 先了解業務上,為什麼要紀錄這些行為或是斷點,再來看資料庫如何儲存這些資料
  • 接著,再思考一次,業務上,為什麼要紀錄這些行為或是斷點?
    • 因為我想知道,平均外送時間是多久?好讓我們可以反映給營運團隊
  • 接著,你就可以開始思考你需要什麼數字?如何設計報表?

學習基本的語法

一開始會用到的語法不多,常見的先學會,練熟就好!

  • Select:選取資料
  • From:從哪個表
  • Where:條件有哪些?例如:時間區間
  • Join:用來連結兩張表,也就是剛剛提到的,了解資料表有幾張?裡面有哪些 key 是可以相互連接的?key 可以用 Join 來連接

操作實際案例:教你自學也能應用的重要方法

實際操作,我會推薦 2 個實用的方法!

  1. 可以到網站上練習:
  2. 但我會建議,最好以自身相關的資料庫出發,自己實際匯入資料庫後練習,可以看看這篇:Google BigQuery 教學,3 分鐘完成資料匯入跟 SQL 查詢
    • 我沒有資料要怎麼匯入?可以用自己的財務資料 (例如說:記帳表)
    • 匯入到哪裡?用 Google BigQuey 免費版,製作自己的資料庫
    • 如何練習 SQL?用 Google BigQuey 免費版,以 SQL 語言和自己建立的資料庫溝通,也可以用 Google BigQuey 裡的開源數據庫

學習進階寫法

學習進階語法的目的有幾個,但如果應用場景不複雜,其實可以不用急著寫進階寫法,能夠以基本語法實做,才是初學者應該要全力專注的:

  • 增加效能:基本的寫法,有時候會讓資料庫跑的慢,特別是在資料庫大的時候
  • 提升分析能力時,語法也需要進步:例如 json 語法的處理、Cohort 分析所需要的資料錯位處理等等

參考跟欣賞其他人的語法

  • 參考前輩:可以參考公司的同事,可以借人家寫好的語法看看
    • 像是日期的處理,我一開始也是看到同事寫的範例才會用
  • 參考書籍或是線上課程
  • 參考論壇:網站上的討論

結論:實作及練習才是學習 SQL 的核心

如果再次統整一下學習 SQL 最重要的幾件事,或是希望知道如何學好 SQL,如何排序學習的優先順序,我會建議:

  1. 了解什麼是 SQL?他是用來做什麼的?–> 為什麼一定要用他
  2. 掌握資料庫的結構 –> 懂結構,才知道怎麼串聯資料表
  3. 為什麼要知道儲存在資料庫裡的資料,在業務上代表的意義? –> 懂業務上的意義,才懂資料的意義
  4. 學習基本的語法 –> 初學的時候,厲害的語法並不是重點
  5. 操作實際案例 –> 2 種實際操作的方法,都是免費的
  6. 學習進階寫法 –> 並非初期最重要的事情
  7. 參考跟欣賞其他人的語法 –> 非必要,但是可以透過其它人的寫法,快速掌握實用的技巧

希望大家的 SQL 學習之路,都可以順順利利!

學習資源推薦

網路上的 SQL 學習資源很多,這裡會推薦我有使用過的 SQL 學習資源:

【1 對 1 免費諮詢】數據分析師 0~1 培訓班陪你一路到轉職成功!

hi 我是 Lisa

你也是 0 經驗、沒有相關背景,但也想要轉職數據分析師,或運用數據分析,提升在領域的專業度嗎?

-

你是否也覺得,數據分析的網路學習資源很多,但是多到不知道從哪裡開始?

學了很多工具,但學完了,問題才真正開始,不知道業界怎麼使用?又該如何面臨工作跟面試?

-

我在 2019 年從營運專員的職位轉職到數據分析師

在這之後,因為數據分析,也讓我快速建構不同領域的知識:行銷、營運、商業策略、產品、網頁

轉職過程中,花了很多時間成本摸索

我發現,學數據分析最快的方式是:

  1. 確認自己跟市場需求之間的差距:訂定轉職策略及了解數據分析師的工作方式
  2. 以業界應用的角度學習工具:包括數據工具及分析用思維架構,並且如何高效運用
  3. 建立一個商業上的真實專案,並且得到回饋:打造屬於你及貼合職缺需求的作品集和專案
  4. 打造一個高效履歷跟面談:透過高價值包裝術拿下面試、成功獲得數據行業的門票

當初如果我有這套系統思維,應該可以在短時間內轉職,馬上拿到進入業界的門票

-

現在,我想把這套完整課程分享給你

這是專門為了 0 經驗、沒有相關背景的轉職者所設計

不需要去考研究所、不需要花大錢準備出國讀書

可以用最快的時間準備轉職、拿到門票!

-

如果你正在準備轉職數據分析師,且試圖找過解決辦法卻始終治標不治本!歡迎跟我預約免費 1 對 1 諮詢,我會在諮詢時,了解你的需求並且評估我是否可以協助到你!

電子書 職場人必學的數據分析術

Lisa Wu

Hi 大家好!我是喜歡探索身心靈健康及平衡的數據分析師 Lisa Wu!這個網站會幫助你:利用數據分析 (理性) 及 身心靈平衡 (感性) 的系統,去達成人生目標!如果你對我的人生系統工具有興趣,歡迎聯繫我:couplehonest@gmail.com

This Post Has One Comment

Comments are closed.