序
就在加入《今日美國》之後不久,我接觸到一份在之後的十年裡、每週都得分析的資料。這是一份每週暢銷書單,它會依照銷售資料排出全國的暢銷書排行榜。從這份書單不只能衍生出無窮的故事行銷手法,還能以獨特的方式捕捉到美國當下的時代精神。
舉例來說,你猜得到烹飪書籍在母親節這一週會賣得比較好嗎?你知道有多少原本沒沒無聞的作家就因為上了歐普拉脫口秀,一舉登上暢銷作家榜首嗎?日復一日,我和書單編輯一再地研究著銷售曲線圖和書籍類目,一邊製作排行資料、一邊試著找出下一個當紅炸子雞。我們很少空手而歸:過程中我們記載了每一條線索,從一鳴驚人的《哈利波特》系列、到蘇斯博士的《你要前往的地方!》繪本已經成為最常見的畢業生禮物,不勝枚舉。
當時我的技術幫手是資料庫程式語言SQL。一開始我便說服了今日美國的IT部門,讓我有權限可以取用書單應用程式背後的資料庫系統。透過SQL,我解開了暗藏在資料庫背後的諸多謎團,資料庫中涵蓋了書名、作者、分類類目、以及各種出版業獨有的編碼方式。以SQL分析這些資料後,我才得以發掘出各種有趣的故事,而這正是各位在讀過這本書後要學會的事。
SQL是什麼?
SQL是一種廣受歡迎的程式語言,你可以用它來定義及查詢資料庫。不論你是市場分析師、或是報導記者,還是想要在果蠅腦中為神經元定位的研究人員都會用到SQL:它不但可以管理資料庫物件,也能建立、修改、探索及歸納資料。1979年,資料庫業者甲骨文的前身(當時還稱為Relational
Software)率先在商業產品中運用了這種語言。如今它仍然名列全球最為廣泛運用的電腦語言之一,而且這地位一時之間還難以撼動。
SQL後來出現了好幾個變種,通常都跟特定的資料庫系統有關。美國國家標準協會和國際標準組織都制訂了產品及技術的標準,為該語言及各種衍生版本提供了實作的準繩。好處是每一個變種都不會和標準相差太遠,因此只要你學會一種資料庫的SQL,就能把同樣的知識運用在其他系統上。
為何要用SQL?
話說回來,為何要使用SQL?畢竟人們在初學資料分析時,SQL通常並非首選的工具。事實上,很多人都是先從微軟的Excel及相關的分析函數開始的。用慣Excel後,也許會進階到Access,因此也使得SQL的技術變得可有可無。
然而各位應該知道,Excel和Access都是有所侷限的。目前的Excel在一份試算表裡最多只能容納1,048,576行資料,而Access的資料庫最大也無法超過2GB、而且一個資料表還不能超過255個欄位。尋常的資料很容易便會超過這些限制,尤其是當你處理來自政府機關系統匯出的資料時。當你面臨交付期限,最不想看到的障礙就是資料庫系統容量不足以處理必要的作業。
使用可靠的SQL資料庫系統,你就能處理多達TB等級的資料、多個關聯的資料表、以及成千的欄位。它讓你能更有條理地控制資料結構,為你帶來效率、速度,更重要的是準確性。
SQL同樣也是絕佳的資料科學程式語言搭檔,R和Python就是最好的例子。你可以透過它們來連結SQL資料庫,甚至還可以將SQL語法直接嵌入到程式語言當中。對於缺乏程式語言背景的人來說,SQL為資料結構及程式邏輯提供了最易學的入門介紹。
此外,了解SQL還能協助你超脫到資料分析層面之上。如果你深入鑽研過線上應用程式的建置,就會發覺許多常見的網頁框架、互動式地圖和內容管理系統的背後,都少不了資料庫的參與。當你需要深入這些應用的內部時,SQL處理資料及資料庫的能力就會讓你得心應手。