想學 SQL,但一看到 SELECT、JOIN 就想關掉視窗?「霞光畫廊失竊案」是一款給完全新手的 SQL 入門遊戲:你扮演剛到警局報到的偵探,用 SQL 查詢警局資料庫,一步步找出偷走水墨畫的犯人。第 0 關只要改一個字,不需要任何程式基礎。
霞光畫廊失竊案是什麼遊戲?
大稻埕的「霞光畫廊」在閉館後少了一幅水墨畫。你手上沒有監視器畫面,只有警局的資料庫:報案紀錄、市民資料、證人筆錄、健身房會員、打卡紀錄和車牌。每一關的線索都藏在資料表裡,你要寫出正確的 SQL 查詢,才能拿到下一條線索。
遊戲直接在瀏覽器裡執行,背後是真正的 SQLite 資料庫引擎。你在遊戲裡寫的語法,之後可以原封不動用在工作上的資料庫。
這個 SQL 遊戲適合誰?
- 完全沒寫過程式,想知道 SQL 在做什麼的人
- 行銷、營運、PM,想自己從資料庫撈數字,不用每次都請工程師幫忙
- Excel 用得很熟,想往資料分析再走一步的人
- 準備上資料分析課程,想先暖身的學生
8 個關卡會學到哪些 SQL?
每一關只教一個新觀念,而且每關都放了「誘答資料」:條件寫不完整,就會抓錯人。這樣你會真正理解每個條件在做什麼,而不是只會抄範例。
| 關卡 | SQL 觀念 | 你會學到 |
|---|---|---|
| 第 0 關 領取偵探證 | 改一個字、按執行 | 什麼是資料表、列和欄 |
| 第 1 關 翻開卷宗 | SELECT * FROM | 把一整張表的資料叫出來 |
| 第 2 關 鎖定案件 | WHERE、AND | 用條件篩出你要的那幾筆 |
| 第 3 關 門牌最大的那戶 | ORDER BY DESC、LIMIT | 排序,並只取第一名 |
| 第 4 關 名字裡有小雨 | LIKE ‘%…%’ | 只記得一部分文字時的模糊搜尋 |
| 第 5 關 調閱筆錄 | JOIN … ON、IN | 用共同欄位把兩張表接起來 |
| 第 6 關 健身房打卡 | JOIN + 多重條件 | 同時用兩張表的欄位篩選 |
| 第 7 關 比對車牌 | 串接四張表 | 一次串起多張表,推理出犯人 |
怎麼玩?3 個步驟
- 讀線索:左邊是本關的劇情、語法說明和任務。
- 改查詢、按執行:右邊已經放好一段範例 SQL,照著任務修改,按「▶ 執行」看結果(電腦可按 Ctrl/⌘ + Enter)。
- 填答案:從查詢結果找到答案,填進答案欄。答對就解鎖下一關。
卡關時可以打開「需要提示」;真的想不出來,也可以看參考解答,再自己改寫一次。
SQL 是什麼?為什麼值得學?
SQL 是跟資料庫「問問題」的語言。你寫一句查詢,資料庫就回你一張表。公司裡的訂單、會員、廣告成效,大多存在資料庫裡,會一點 SQL,就能自己回答「上個月哪個地區的新會員最多?」這類問題。
SQL 的好處是語法很接近英文:SELECT * FROM people WHERE address_street = '迪化街' 幾乎可以照字面讀成「從市民資料裡,給我看住在迪化街的人」。這也是它很適合當第一個程式語言的原因。
常見問題
完全不會寫程式,真的可以玩嗎?
可以。第 0 關只要把查詢裡的兩個字換掉、按一次執行。之後每關都會先說明新語法,再給一段可以直接修改的範例。
需要安裝軟體或註冊帳號嗎?
不需要。打開網頁就能玩,資料庫在你的瀏覽器裡執行。
手機可以玩嗎?
可以,版面支援手機。不過要打程式碼,用電腦鍵盤會輕鬆很多。
遊戲進度會保存嗎?
會保存在你目前使用的瀏覽器裡。換一台裝置或清除瀏覽器資料,就會從頭開始。
破案之後,可以接著學什麼?
建議試試 COUNT(*) 和 GROUP BY,例如算出每條街住了幾個人。這是做報表時最常用的兩個語法。
破案還不過癮?去玩一場真實的密室逃脫
找線索、串證據、排除誘答,最後推理出答案,這就是密室逃脫的樂趣。玩完 SQL 偵探,不妨約朋友去挑戰一場實體密室,看誰先解開最後一道鎖。
本段含 Klook 聯盟行銷連結。透過連結預訂,本站會獲得分潤,你支付的價格不變。
發佈留言