入門還沒有評分
SQL 入門:用 PostgreSQL 學會查資料
從零開始學 SQL:用一家小書店的資料,從查詢、統計、JOIN 一路學到交易、索引、執行計畫與查詢最佳化,準備好面試會追問的觀念。
11 章・58 單元・約 13 小時 21 分鐘
課程介紹
這門課從「查資料」開始,一路學到統計報表、合併多張資料表、子查詢與視窗函式,再到修改資料與交易、建立資料表與正規化,接著是索引、執行計畫與查詢最佳化、函式與預存程序,最後是資料庫擴展與架構。 全課以同一份練習資料為主:一家小書店的顧客、書、訂單、訂單明細與員工;第 2 章的分頁、索引與執行計畫兩章另外產生百萬筆的大表。每段 SQL 都附上實際跑出來的結果,照著打就能對答案,時間、隨機值這類每次不同的結果會另外註明。 每個單元還有「面試這樣答」,把觀念整理成面試時可以直接講的回答。
用哪個資料庫
主軸是 PostgreSQL:開源、功能多、社群活躍,也是 Supabase 這類雲端服務的底層。 遇到 MySQL、SQL Server 寫法不一樣的地方,會用補充框標出來。
你會學到
- 寫出 JOIN、GROUP BY、子查詢、CTE、視窗函式,解常見的查詢與報表題型
- 用交易安全地修改資料,說得出隔離層級、鎖與 MVCC 怎麼運作,以及怎麼防止超賣
- 設計資料表:選對型別、加上約束、照正規化拆表
- 設計索引與複合索引的欄位順序,知道哪些寫法會讓索引用不上
- 看懂 PostgreSQL 與 MySQL 的執行計畫,找出慢查詢並改寫到變快
- 寫函式、預存程序與觸發器,說得出連線池、分割、複製、分片的取捨
學習地圖
- 9-1EXPLAIN:看懂執行計畫怎麼知道資料庫實際上是怎麼跑這個查詢的?16 分
- 9-2掃描方式與 JOIN 演算法Nested Loop、Hash Join、Merge Join 各適合什麼情況?18 分
- 9-3統計資料與估計錯誤資料庫為什麼會選錯執行計畫?21 分
- 9-4找出慢查詢系統變慢了,要從哪裡開始查?16 分
- 9-5改寫查詢:條件與子查詢同樣的結果,換個寫法為什麼快十倍?19 分
- 9-6深分頁、大表計數與批次處理第 1000 頁、總筆數、一百萬筆的更新,怎麼做才不會拖垮資料庫?16 分
- 9-7看懂 MySQL 的 EXPLAIN面試用的是 MySQL,type、key、Extra 要怎麼看?18 分
- 9-8本章小實作:最佳化一支慢查詢一支跑不完的查詢,要從哪裡下手?18 分
期末考
通過期末考,才算讀完整門課。
- 題數
- 30 題
- 及格分數
- 80 分
- 限時
- 不限時
- 沒過後要等
- 24 小時