當我們到圖書館找尋資料庫書籍時,你會發現多數書籍是關於 MySQL,
PostgreSQL 往往不是你第一個認識資料庫,那麼為什麼要選擇 PostgreSQL?
PostgreSQL 1990年代推出第一版,時至今日,程式設計領域最知名的問答網站
Stack Overflow 在2022年對全球的開發人員進行調查,結果顯示在資料庫項目中,
由專業開發人員所票選出的第一名,可見十分經得起考驗與受到喜愛。
https://survey.stackoverflow.co/2022/#databases
Stack Overflow 專業人士所使用的前五名,扣掉 SQLite 是專門用於手機上的資料庫,
MongoDB 則是以鍵值對應的文檔型資料庫,剩下的PostgreSQL、MySQL、SQL Server
有各自的優缺點,本文所採用的資料庫為完全開源,免費且擁有高級複雜查詢功能。
PostgreSQL | MySQL | SQL Server | |
---|---|---|---|
開源/非開源 | Open Source | Open Source | Not Open Source |
版本 | 免費 | 免費/付費 | 免費(限制多)/付費 |
運行系統 | Microsoft, Mac, Linux | Microsoft, Mac, Linux | Microsoft, Linux |
SQL | Standard SQL | Standard SQL | T-SQL |
優勢 | 高級功能 | 輕便、速度快 | 微軟 |
PostgreSQL 官網手冊豐富,並且有台灣使用者社群維護繁體中文版本,
可以更輕鬆的閱讀資源,另外也有許多網站提供更淺顯易懂的Tutorial教學,
以下列出官網、繁體版跟參考網站 :
https://www.postgresql.org/
https://docs.postgresql.tw/tutorial
https://www.geeksforgeeks.org/postgresql-tutorial/
https://www.postgresqltutorial.com/
https://www.tutorialspoint.com/postgresql/index.htm
操作資料庫有許多種方法,對於資料庫陌生的工程師來說,VSCode是個好選擇。
因為VSCode現今已經是開發界家喻戶曉的輕量級編輯器,只要安裝擴充功能之後,
便可以完善的操作PostgreSQL,因此本系列將會以VSCode作為使用工具。
備註 : VSCode在筆者撰寫文章時MySQL的擴充功能有不少顯示性的BUG存在。
一開始可能會覺得資料庫這麼多,學完PostgreSQL之後,如果運氣不好,
面試上的工作卻使用其他資料庫,那麼不就要再從學一次了?
你可能會想像天下武功門派,一開始就要選對,要轉換門派是一件困難的事情!
不用擔心吶,情況會更像是你是一個軍隊的軍人,不管在哪個部隊都是一樣的,
甚至跨國支援都不是問題,因為資料庫所使用的查詢語言SQL是標準化的,
也就是說學完PostgreSQL之後,之後工作需求轉換到 MySQL等資料庫是容易的,
雖然每個資料庫會有各自獨特不同的語法與設定,但在多數標準的語法相同
因此你可以很快速就上手另一款資料庫囉!
對於資料庫初學者最常聽到的資料庫可能是MySQL,甚至Google搜尋資料庫,
出現的資源也很有可能是以MySQL為範例,例如知名的學習網站W3schools。
本系列選擇PostgreSQL有幾項原因 :
有人認為MySQL的甲骨文公司(Oracle)可能會有某一天將其變更為
非開源的軟體,甚至因此有人建立了MariaDB來預防這個隱患,PostgreSQL
則是以完全開源的方式在運作且功能強大。
PostgreSQL 中文資源相對少也是撰寫這篇文章的動力之一,希望藉由參加鐵人賽
對整個社群貢獻一點點個人小小的心力。
筆者的舒適圈有許多 PostgreSQL 使用者,撰寫文章之餘也可以促進工程師之間
的交流,希望藉由軟體業的前輩們經驗,對於這個系列進行指教。