SQL語法查詢入門|挖掘數據真相,征服大數據時代的第一本書 | 被動收入的投資秘訣 - 2024年9月
![](https://www.books.com.tw/img/001/082/02/0010820274.jpg)
SQL語法查詢入門|挖掘數據真相,征服大數據時代的第一本書
SQL是一種用建立、管理和查詢資料庫的程式語言。無論您是分析師、記者或是從事學術研究的研究人員,都可以運用SQL來發掘隱藏在數據中的故事。
本書除了解說SQL以及資料庫的基礎知識之外,還會告訴您如何使用pgAdmin和PostgreSQL資料庫系統來建立、組織和分析真實世界的資料,像是犯罪統計資料或人口普查統計數據,同時也將告訴您如何在資料庫中進行運算,以及排解實際工作過程中常見的障礙。
透過本書,您將了解如何:
.為您的資料定義正確的數據類型
.聚合、排序和過濾數據以查找模式
.識別並清除數據中的任何錯誤
.搜尋有意義數據的文字
.建立進階查詢並自動完成繁瑣的任務
作者簡介
Anthony DeBarros
Anthony DeBarros是一位獲獎無數的數據記者,從事新聞工作的時間長達30年,曾經任職的機構包括USA TODAY和Gannett的Poughkeepsie Journal。擁有瑪麗斯特大學的資訊系統碩士學位。
第1章|建立你的第一個資料庫和資料表
初步介紹了PostgreSQL、pgAdmin使用者介面、以及如何將簡易教師資料集匯入到新建資料庫當中。
第2章|用SELECT 開始探索資料
教各位探索基本的SQL 查詢語法,包括如何排序及篩選資料。
第3章|了解資料類型
解釋了如何設置資料表欄位來儲存特定型態的資料,從文字到各種形式的數字都有。
第4章|匯入與匯出資料
說明如何利用SQL 指令從外部檔案載入資料、以及如何加以匯出。各位會試著載入一套美國人口普查資料表,而且後面的章節都會用到它。
第5章|SQL 的基礎數學計算與統計
涵蓋了算術運算,並介紹各種匯總函式,用來計算總和、平均值及中間值等等。
第6章|在關聯式資料庫中結合資料表
說明如何透過關鍵欄位結合多個彼此有關聯的資料表、以便進行查詢。各位將學到如何執行結合,也會學到何時應當使用何種結合方式。
第7章|適合你的資料表設計
涵蓋如何建置資料表才能提升你的資料組織性和正確性,也會告訴各位如何以索引加速查詢。
第8章|利用群聚(Grouping)和總結(Summarizing)來擷取資訊
說明如何利用匯總函式,從年度調查中找出美國圖書館運用的趨勢。
第9章|調查與修改資料
會以關於肉品、雞蛋及家禽生產商的記錄資料為例,探討如何找出和修正不完整或不正確的資料。
第10章|SQL 裡的統計函式
簡介了SQL 中的相關性、回歸及排序等函式,以便讓你從資料中推導出更多結論。
第11章|日期與時間的處理
以紐約市計程車乘運和美國國鐵(Amtrak)時間表的資料為例,說明在資料庫中如何建立、處理和查詢日期及時間,包括如何處理時區。
第12章|進階查詢技巧
說明如何使用更繁複的SQL 運算,例如子查詢(subqueries)和交叉製表、以及CASE 敘述,將溫度讀數的資料值重新分類。
第13章|探勘文字以找出有意義的資料
以美國歷任總統演說辭為例,涵蓋如何利用PostgreSQL 的全文檢索引擎和正規表示式,從雜亂無章的文字中擷取資料。
第14章|用PostGIS 分析空間資料
介紹了與空間物體有關的資料類型和查詢,讓你可以分析地理特徵,如州境、道路與河流等等。
第15章|利用檢視表、函式和觸發程序來節省時間
說明如何把資料庫作業自動化,以避免重複性的工作。
第16章|從指令列操作PostgreSQL
涵蓋如何在你電腦的命令提示畫面使用文字指令,以便連接資料庫並執行查詢。
第17章|維護你的資料庫
提供若干訣竅與程序,用於追蹤資料庫規模、自訂設定方式、以及備份資料。
第18章|找出並述說資料背後的故事
提供了基本指南,教大家如何把分析化為概念、如何審閱資料、如何產生結論、以及如何明確地呈現你的發現等等。
附錄A:其他的PostgreSQL 資源
列舉各種可以協助你提升技巧的軟體及文件。
序
就在加入《今日美國》之後不久,我接觸到一份在之後的十年裡、每週都得分析的資料。這是一份每週暢銷書單,它會依照銷售資料排出全國的暢銷書排行榜。從這份書單不只能衍生出無窮的故事行銷手法,還能以獨特的方式捕捉到美國當下的時代精神。
舉例來說,你猜得到烹飪書籍在母親節這一週會賣得比較好嗎?你知道有多少原本沒沒無聞的作家就因為上了歐普拉脫口秀,一舉登上暢銷作家榜首嗎?日復一日,我和書單編輯一再地研究著銷售曲線圖和書籍類目,一邊製作排行資料、一邊試著找出下一個當紅炸子雞。我們很少空手而歸:過程中我們記載了每一條線索,從一鳴驚人的《哈利波特》系列、到蘇斯博士的《你要前往的地方!》繪本已經成為最常見的畢業生禮物,不勝枚舉。
當時我的技術幫手是資料庫程式語言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處理資料及資料庫的能力就會讓你得心應手。