大家好啊!今天我們要開始一個超讚的 SQL 課程。
這課程是給完全不懂 SQL、但超想學會的人(你不是機器人吧?)設計的。你會從最基礎開始,最後學到 stored procedures、nested transactions、triggers,還有自動化產生報表。
課程裡有上百個實作題,幫你把理論跟實戰連起來。最後還有一個超大 期末專案,100+ 張表😅 在等你!
我們的目標——讓你用 SQL 解決任何資料問題都超有自信。課程結束後,SQL 對你來說會變得超直覺。你不用再苦思怎麼寫 query、怎麼設計資料庫或解決複雜分析題——一切都會變得很自然、很快。
我們的教學方式
課程中有些主題會先簡單提到,之後再用獨立講座細講。像介紹 relational model 時,不可能不提到表之間的關聯。初期我們也會用很簡單的資料庫 schema 或範例,避免一開始就資訊爆炸。
這種方式是為了讓你能分階段學習——要講清楚一個主題,常常得先有其他主題的基礎。所以別擔心,所有的空白我們都會在學習過程中補齊。
課程結構
課程是分等級的,每個等級有幾個講座。每堂課都有理論、實作題和測驗,幫你鞏固學到的東西。
前幾個等級的題目都能直接在網站上做——完全不用安裝其他程式。再過幾個等級,我們會一步步安裝 PostgreSQL、專業 IDE 跟需要的 plugins。全部都很有順序、很 easy。
為什麼選 PostgreSQL?
PostgreSQL 是超先進又超熱門的資料庫,功能多到爆,任何專案都夠用。銀行、startup、商店、遊戲公司都在用。你用它可以做出 Instagram,甚至核電廠咖啡機管理系統都沒問題。如果你想再進階,從 PostgreSQL 轉去更「重型」的 Microsoft SQL Server 或 Oracle DB(!) 也超 easy。
我們會全部用 PostgreSQL 17 來示範。也推薦你這樣做!
這些都是你未來會遇到的,今天我們就從最基礎開始...
那資料庫到底是什麼?
想像一下,你把所有重要資料——密碼、購物清單、前任電話、最愛食譜——全都塞進一個超巨的 Excel 表,叫做 "生活.xlsx"📉。這表每天都在變大、越來越慢、還會壞掉。某天你會發現:該長大了,該用更專業的方式存資料了。是時候用資料庫啦!
資料庫 不只是表格。它就像 Excel,但超進化:能超快搜尋、過濾、更新資料。不怕幾百萬行、不會卡、不會說「檔案損毀」💔。簡單說,它就是超強助手,永遠不會忘記你 2019 年在疫情前遇到的那個人的電話。
我為什麼需要它?
——你可能會問。真的需要嗎?我好像根本沒用過...你確定嗎?
你手機裡的東西全都存在資料庫裡。照片、訊息、信件、筆記——全部都在資料庫。就算你早就搬到雲端,也別太放心——你的資料還是在雲端的資料庫裡😬。整個網路、全世界的資料都在資料庫裡。如果你是 IT 人,這點還能讓你賺不少錢 💰。
真的啦,來看幾個例子:
- 網路商店:你把商品加進購物車時,資料庫會記下你的選擇,之後再把資料送去付款。
- 社群網站:按讚、留言、朋友——這些全都存在資料庫。
- 銀行系統:資料庫讓你查餘額、做交易、即時存取資訊。
這一切都靠資料庫才能做到,因為它們能:
- 儲存:資料不會像一整箱文件一樣搞丟。
- 管理:資料有組織、有結構、隨時能用。
- 查詢:想找什麼都超快超簡單。
資料庫的基本元素
資料庫是由幾個基本積木組成的,現在你就會知道。這階段我們先簡單比喻一下——資料庫就像 Excel 的表格(但好太多!)。
表格
想像 Excel 表:有列、有欄,全部都很整齊。資料庫的表也是這樣。表就是資料庫裡最基本的資料儲存結構。
每個表:
- 有自己的名字(像
students或courses)。 - 由列和欄組成。
列
列 就是你存的紀錄或物件。一列就是一個物件/實體,比如一個學生的資料。
學生資料表裡的一列範例:
id: 1, name: 阿列克斯, age: 20, group: A1
欄
欄 就是物件的屬性或特徵,也有人叫它 columns。例如:
id— 學生的唯一編號。name— 他的名字。age— 年齡。group— 他所屬的班級名稱。
這樣我們就能把資料分開,清楚知道要去哪裡找什麼。
這就是我們的 students 表:
實際上怎麼運作?
Excel 表有專屬的程式(就是 Microsoft Excel)和文件。資料庫也是一樣。資料庫的程式叫 DBMS(資料庫管理系統),它的「文件」就叫 資料庫。
DBMS 可以:
- 在表裡加新列(比如新增學生)。
- 改任何欄位的資料。
- 查詢資料,比如:「找出所有 A1 班的學生」。
- 刪除不需要的列。
透過 DBMS 處理資料的流程
你,作為使用者或開發者,不會直接碰到存資料的檔案。你只要寫出「查詢」——你想要什麼或想改什麼——然後交給 DBMS。通常會用一種專門的查詢語言,最常見的就是 SQL,我們這課程就是要學這個。DBMS 會收下你的 SQL 查詢,「理解」它,去資料庫裡操作,然後把結果回傳給你。
超簡單的資料庫運作流程:
- 使用者寫查詢。
- 查詢送進 DBMS。
- DBMS 去找資料庫。
- 資料庫把資料回傳給 DBMS。
- DBMS 根據查詢處理資料。
- 結果回給使用者。
為什麼需要資料庫?
現在你可能會想:「這不就是進階版 Excel,幹嘛搞這麼複雜?」
來,這裡有幾個理由:
- 處理大量資料。 想像你要管理幾百萬用戶的資料。Excel 表根本撐不住。
- 超方便查資料。 如果你要查「找出所有超過 20 歲、A1 班的學生」,資料庫幾毫秒就搞定。Excel?祝你好運。
- 資料有組織又一致。 資料庫保證資料有條理、不會亂七八糟。
- 多人同時用。 你跟同事可以一起用同一個資料庫,完全不會打架。它的結構就是為這個設計的。
想像你要做一個網路商店。你得存商品資料(名稱、價格、分類)、客戶資料(名字、聯絡方式),還有訂單(誰、買了什麼、什麼時候買)。如果全部塞進一個大表,馬上就會變超亂、資料重複一堆,想找或改資料都很容易出錯。
資料庫給你更優雅的解法:把資料分成邏輯區塊(表)。每個表只存一種東西(比如只存商品、只存用戶)。重點是,這些表還能互相關聯,反映真實世界的關係,比如哪個用戶買了哪個商品。
你為什麼一定要學這些?
只要你寫過一點 backend 或碰過資料——資料庫一定會跟著你。
這些人絕對用得到:
- 💻 Web 開發者——要存用戶、貼文、購物車,什麼都要。
- 📊 分析師——要抓數字、做報表。
- 🛠️ 管理員——讓資料庫不卡、不會掛。
- 🧠 程式設計師——讓 app 不只是活著,還要聰明又有彈性。
還有——面試超愛考資料庫。幾乎都會要你寫個 SQL 查詢,或解釋一下 JOIN 是什麼。
所以,如果你想繼續進步——資料庫一定要學好。這是讓你變成真正自信開發者的關鍵技能之一。
GO TO FULL VERSION