最近剛學完一堂Udemy上的入門SQL課程:SQL 資料分析入門
一句話說明學完的快速心得:
SQL就是在資料庫上,進行更大量、快速在Excel中做的事
真實的SQL當然不只於此
相較於Excel優缺點如下:
優點:能更快速、大量的處理資料,對資料庫進行CRUD(增、刪、查、改)
缺點:門檻較高,需要透過SQL的程式語法操作
SQL 適合誰、要解決什麼
SQL主要的使用者有兩類:
- 資料庫維護者
- 資料查詢者
資料庫管理者
SQL全稱是 Structured Query Language,數據分析的基本功。
比起資料查詢者通常只會用到CRUD的R,資料庫管理者需要CRUD並用。
資料查詢者
身為一個PM或是行銷企劃,可能時常會遇到下列困擾:
每次跟工程單位開需求時,
- 時間太趕,需求開不清楚(或後來才想到),導致工程師沒有抓到足夠的資料
- 工程師沒有catch到需求要什麼,漏抓了資料
較好的解法是:學會SQL查詢語法,自己成為Power User。就可不假工程師之手自己抓取想要的資料。
若有學過基礎的前端程式語言(HTML/CSS/JavaScript),對SQL語法就不會太陌生,一樣都會有常見的寫作風格、需要縮排、「;」告知指令結束。
SQL 資料分析入門
我選擇的的課程SQL 資料分析入門,
在6個小時的課程中會說明:SQL是什麼、常見的資料庫類型有哪些、基礎的SQL語法(包含CRUD)、SQL如何與Python、R連結。
其中大量時間(4個小時)課程著墨在查詢語法。除了說明用法外,每個段落也有練習作業,可以檢視自己學習吸收的狀況。
課程大綱:
- 起步走
- 說明SQL是什麼
- SQL的環境設定
- 基礎 SQL 資料庫查詢
- SELECT FROM
- WHERE
- ORDER BY
- 進階 SQL 資料庫查詢
- 子查詢
- GROUP BY
- HAVING
- JOIN
- 基礎 SQL 資料庫表格處理
- CRUD的CUD(增、改、刪)
- SQL 資料庫與資料科學程式語言
- 與Python連結
- 與R連結
SQL 查詢語法
對於Power User而言,最需要的是 R(Research)的功能。
以下整理課程中說明的SQL查詢語法:
- SELECT
- FROM
- WHERE
- ORDER BY
- 子查詢
- 一般函數
- 聚合函數
- GROUP BY
- UNION
- HAVING
- JOIN
補充:上完SQL 資料分析入門後,
若需要更多SQL的細節使用說明,可以到w3school的SQL教程查看。
- SELECT
選擇要查詢的變數值。查詢對象為全部變數時可用「*」選取
- FROM
選擇要查詢哪個資料庫及表格選取資料
- WHERE
對查詢結果下篩選條件
- 限定條件,當 某變數 為 特定值 的選取功能
- 當有多個限定條件時使用,描述交集,可以用 OR 或 IN,兩種方式描述。
- 當有多個限定條件時使用,描述聯集,可以用 AND 或 BETWEEN + AND,兩種方式描述。
- 不等於:!=
- 模糊比對:LIKE跟%
- ORDER BY
指定查詢結果以何者排序,預設為遞增排序ASE。
若要改成遞減排序,則加上DESC。 e.g., ORDER BY 變數 DESC
並可搭配LIMIT,篩出只要最XX的幾個。e.g., LIMIT 10
- 子查詢
基於另一個查詢結果的查詢
- 一般函數
輸入長度(資料筆數) = 輸出長度。 e.g., LENGTH(變數),算出變數的字元長度
- 聚合函數
輸入長度(資料筆數) 通常 > 輸出長度。 e.g., DISTINCT(變數),算出變數中,觀測值的不重複數量
- GROUP BY
依類別分別作聚合函數運算
- HAVING
聚合函數版的WHERE,當要篩選的變數是聚合函數時,要改使用 HAVING保留字。
- UNION
轉置。將呈現方式由原本「寬表格」,改為「長表格」但在SQL裡轉置較麻煩(要寫較多程式碼),因此通常會到分析程式(R或Python)中再轉置。
- JOIN
連結不同資料庫表格(table)的語法
通過使用主鍵(primary key)和外鍵(foreign key)建立連接。
SQL入門課程:SQL 資料分析入門