上一篇文章我們知道了:資料應該存在遠端伺服器上,而不是瀏覽器或使用者的電腦裡。
但問題來了:遠端伺服器上可以存很多種東西——文字檔、Word 文件、Google 試算表、甚至就是一個 .txt 檔。那我們為什麼還需要特別學「資料庫」這個東西?用一般的檔案存資料不行嗎?
這篇文章要告訴你的是:資料不只要存對地方,還要存對格式。
用純文字存資料會遇到什麼問題?
在還沒學習資料庫之前,我們可能會很直覺地把資料當作「一串文字」來儲存。
例如你想記下某個人的基本資料,可能會寫成這樣:
28 歲的小明住在台北看起來沒什麼問題,清楚明瞭。那如果你還想記住其他人呢?你可能會開始這樣記在記事本裡:
28 歲的小明住在台北
26 歲的小美住在高雄
30 歲的小張住在新竹這樣當作備忘錄沒問題,但如果你要開發一個網站,讓程式能夠讀取、搜尋、管理這些資料,你會很快遇到困難。
讓我們用另一個例子來感受一下。請你花 5 秒鐘看完下面這段文字,然後回答:小民總共提了幾次錢?
三月七號小民存了五千元,然後3/12小民領了三千塊,接著三月二十日會入八千元,3月25號又提款兩千...5 秒鐘看完了嗎?是不是覺得很難讀?
這就是純文字的問題:資訊混在一起,沒有規律,很難快速找到你要的東西。
從純文字到表格:一步步改善
原始的純文字
三月七號小民存了五千元,然後3/12小民領了三千塊,接著三月二十日會入八千元,3月25號又提款兩千...所有資訊擠在一起,日期、動作、金額全部混雜,讀起來很吃力。
加上顏色分類
如果我把同類型的資訊標上顏色呢?
光是「把同類資訊標成同一個顏色」,就已經好讀很多了。你可以快速掃過橘色的部分,就知道有幾個日期;看藍色的部分,就知道有哪些金額。
整理成表格
如果我們更進一步,把資料排成表格呢?
| 日期 | 動作 | 金額 |
|---|---|---|
| 3/7 | 存款 | 5,000 |
| 3/12 | 提款 | 3,000 |
| 3/20 | 存款 | 8,000 |
| 3/25 | 提款 | 2,000 |
現在你可以一眼看出:
- 日期都在最左邊
- 動作都在中間
- 金額都在最右邊
而且格式統一了:日期全部用阿拉伯數字,動作只有「存款」和「提款」兩種,不會有「領錢」、「匯入」、「會出」這些混亂的說法。
為什麼表格格式更好?
比較一下兩種版本:
純文字版:
三月七號小民存了五千元,然後3/12小民領了三千塊,接著三月二十日會入八千元...表格版:
| 日期 | 動作 | 金額 |
|---|---|---|
| 3/7 | 存款 | 5,000 |
| 3/12 | 提款 | 3,000 |
表格版好在哪裡?
格式統一
純文字版裡,日期有時候用國字(三月七號),有時候用數字(3/12);動作有時候叫「存」、有時候叫「領」、有時候叫「匯入」。
表格版強迫你統一格式:日期就是數字,動作就是「存款」或「提款」,沒有模糊空間。
再舉個例子。假設你的記事本裡存了這些資料:
28 歲的小明住在台北
26 歲的小美住在高雄
30 歲的小張住在新竹看起來還算整齊。但如果有人多加了一筆:
小豪 / 年齡: 25 / 地區:台中這筆資料的格式完全不同,程式不會知道 / 是分隔符號,也不知道「年齡:」後面的數字才是年齡。這樣一來,整份資料就亂掉了。
但如果用表格,每個人的資料都必須照著「姓名、年齡、居住地」的欄位填寫,想亂寫也沒辦法。資料越多,格式統一的好處就越明顯。
位置固定
純文字版裡,你不知道金額會出現在句子的哪個位置。
表格版裡,金額永遠在第三欄。你要找金額,就去看第三欄,不用整段文字慢慢找。
程式好處理
如果資料是純文字,你要寫程式找「3月7號的金額」,可能要這樣講:
「從第四個字元到第七個字元是日期,然後跳過幾個字,再找數字…」
超級麻煩,而且每一筆資料格式不同,寫法也要跟著改。
但如果是表格,你只要說:
「找日期欄位等於 3/7 的那一列,然後取金額欄位的值」
簡單、清楚、不會出錯。
資料庫如何用表格管理資料?
經過前面的比較,我們可以發現:把資料排成表格,是最清楚、最好管理的方式。
這個概念非常重要,因為它正是資料庫的核心——資料庫就是用「表格」來儲存資料的。
表格的基本結構
讓我們把剛才的人員資料整理成表格:
| 姓名 | 年齡 | 居住地 |
|---|---|---|
| 小明 | 28 | 台北 |
| 小美 | 26 | 高雄 |
| 小張 | 30 | 新竹 |
在資料庫的世界裡,這個表格有專門的術語:
- 表格(Table):整個表格,用來存放同一類型的資料。例如這張表專門存「人員資料」。
- 欄位(Column):表格的每一直行,代表資料的某個屬性。例如「姓名」、「年齡」、「居住地」就是三個欄位。
- 紀錄(Row):表格的每一橫列,代表一筆完整的資料。例如「小明, 28, 台北」就是一筆紀錄。
表格讓程式可以精準操作資料
有了這樣的結構,程式就可以非常精準地搜尋、篩選、排序資料。例如:
- 搜尋:找出所有「居住地 = 台北」的人
- 排序:把資料按照「年齡」從大到小排列
- 計算:算出所有人的「平均年齡」
- 篩選:只顯示「年齡 > 25」的人
這些操作用純文字幾乎做不到,但對表格來說輕而易舉。
資料庫就是管理表格的系統
你可以把資料庫想成是一個「超強版的 Excel」:
- 它可以儲存很多張表格
- 它可以處理幾百萬、幾千萬筆資料
- 它提供專門的語言(SQL)讓你快速查詢資料
- 它有權限控管,可以決定誰能看、誰能改
這正是資料庫最擅長的事情。
小結
你可以把純文字想像成「亂塞在抽屜裡的便條紙」,而資料表格就像是「分類整齊的資料櫃」。
如果你想:
- 搜尋特定條件的資料
- 統計數據
- 更新其中一筆紀錄
- 防止格式錯誤
- 管理大量資料(幾千萬筆)
那你就需要一個有結構、有欄位、有規則的儲存方式。
這就是為什麼我們需要資料庫——它不只幫你把資料存在遠端伺服器上,還幫你用「表格」的方式把資料整理得清清楚楚,讓程式可以輕鬆地讀取、搜尋、管理這些資料。