前言 xi
第1 章 基礎知識 1
1.1 如何獲得PostgreSQL 1
1.2 管理工具 1
1.2.1 psql 2
1.2.2 pgAdmin 2
1.2.3 phpPgAdmin 3
1.2.4 Adminer 3
1.3 PostgreSQL 數據庫對象 4
1.4 最新版本的PostgreSQL 中引入的新特性 9
1.4.1 為什麼要升級 10
1.4.2 PostgreSQL 9.4 版中引入的新特性 10
1.4.3 PostgreSQL 9.3 版新特性列錶 12
1.4.4 PostgreSQL 9.2 版新特性列錶 13
1.4.5 PostgreSQL 9.1 版新特性列錶 14
1.5 數據庫驅動程序 14
1.6 如何獲得幫助 15
1.7 PostgreSQL 的主要衍生版本 15
第2 章 數據庫管理 17
2.1 配置文件 17
2.1.1 postgresql.conf 18
2.1.2 pg_hba.conf 21
2.1.3 配置文件的重新加載 23
2.2 連接管理 24
2.3 角色 25
2.3.1 創建可登錄角色 26
2.3.2 創建組角色 26
2.4 創建database 28
2.4.1 模闆數據庫 28
2.4.2 schema 的使用 29
2.5 權限管理 31
2.5.1 權限的類型 31
2.5.2 入門介紹 31
2.5.3 GRANT 32
2.5.4 默認權限 33
2.5.5 PostgreSQL 權限體係中一些與眾不同的特點 34
2.6 擴展包機製 34
2.6.1 擴展包的安裝 36
2.6.2 通用擴展包 38
2.7 備份與恢復 40
2.7.1 使用pg_dump 進行有選擇性的備份 41
2.7.2 使用pg_dumpall 進行全庫備份 42
2.7.3 數據恢復 43
2.8 基於錶空間機製進行存儲管理 45
2.8.1 錶空間的創建 45
2.8.2 在錶空間之間遷移對象 45
2.9 禁止的行為 46
2.9.1 切記不要刪除PostgreSQL 係統文件 46
2.9.2 不要把操作係統管理員權限授予PostgreSQL 的係統賬號(postgres) 47
2.9.3 不要把shared_buffers 緩存區設置得過大 47
2.9.4 不要將PostgreSQL 服務器的偵聽端口設為一個已被其他程序占用的端口 47
第3 章 psql 工具 49
3.1 環境變量 49
3.2 psql 的兩種操作模式:交互模式與非交互模式 50
3.3 定製psql 操作環境 51
3.3.1 自定義psql 界麵提示符 52
3.3.2 語句執行時間統計 53
3.3.3 事務自動提交 53
3.3.4 命令彆名 54
3.3.5 取齣前麵執行過的命令行 54
3.4 psql 使用技巧 55
3.4.1 執行shell 命令 55
3.4.2 用watch 命令重復執行語句 55
3.4.3 顯示對象信息 55
3.5 使用psql 實現數據的導入和導齣 56
3.5.1 使用psql 進行數據導入 56
3.5.2 使用psql 進行數據導齣 58
3.5.3 從外部程序復製數據以及將數據復製到外部程序 58
3.6 使用psql 製作簡單的報錶 58
第4 章 pgAdmin 的使用 61
4.1 pgAdmin 入門 61
4.1.1 功能概覽 61
4.1.2 如何連接到PostgreSQL 服務器 63
4.1.3 pgAdmin 界麵導航 63
4.2 pgAdmin 功能特性介紹 64
4.2.1 在pgAdmin 中調用psql 65
4.2.2 在pgAdmin 中編輯postgresql.conf 和pg_hba.conf 文件 65
4.2.3 創建數據庫資産並設置權限 66
4.2.4 數據導入和導齣 68
4.2.5 備份與恢復 69
4.3 pgScript 腳本機製 72
4.4 以圖形化方式解釋執行計劃 75
4.5 使用pgAgent 執行定時任務 75
4.5.1 安裝pgAgent 76
4.5.2 規劃定時任務 76
4.5.3 一些有用的pgAgent 相關查詢語句 78
第5 章 數據類型 80
5.1 數值類型 80
5.1.1 serial 類型 81
5.1.2 生成數組序列的函數 81
5.2 字符和字符串 82
5.2.1 字符串函數 83
5.2.2 將字符串拆分為數組、錶或者子字符串 83
5.2.3 正則錶達式和模式匹配 84
5.3 時間類型 85
5.3.1 時區詳解 87
5.3.2 日期時間類型的運算符和函數 89
5.4 數組類型 91
5.4.1 數組構造函數 92
5.4.2 引用數組中的元素 93
5.4.3 數組的拆分與連接 93
5.4.4 將數組元素展開為記錄行 93
5.5 區間類型 94
5.5.1 離散區間和連續區間 95
5.5.2 原生支持的區間類型 95
5.5.3 定義區間的方法 96
5.5.4 定義含區間類型字段的錶 97
5.5.5 適用於區間類型的運算符 97
5.6 JSON 數據類型 98
5.6.1 插入JSON 數據 98
5.6.2 查詢JSON 數據 99
5.6.3 輸齣JSON 數據 101
5.6.4 JSON 類型的二進製版本:jsonb 101
5.7 XML 數據類型 103
5.7.1 插入XML 數據 103
5.7.2 查詢XML 數據 104
5.8 自定義數據類型和復閤數據類型 105
5.8.1 所有錶都有一個對應的自定義數據類型 105
5.8.2 構建自定義數據類型 107
5.8.3 為自定義數據類型構建運算符和函數 107
第6 章 錶、約束和索引 109
6.1 錶 109
6.1.1 基本的建錶操作 109
6.1.2 繼承錶 110
6.1.3 無日誌錶 110
6.1.4 TYPE OF 111
6.2 約束機製 112
6.2.1 外鍵約束 112
6.2.2 唯一性約束 113
6.2.3 check 約束 113
6.2.4 排他性約束 113
6.3 索引 114
6.3.1 PostgreSQL 原生支持的索引類型 115
6.3.2 運算符類 116
6.3.3 函數索引 118
6.3.4 基於部分記錄的索引 118
6.3.5 多列索引 119
第7 章 PostgreSQL 的特色SQL 語法 121
7.1 視圖 121
7.1.1 單錶視圖 122
7.1.2 使用觸發器來更新視圖 123
7.1.3 物化視圖 125
7.2 靈活易用的PostgreSQL 專有SQL 語法 127
7.2.1 DISTINCT ON 127
7.2.2 LIMIT 和OFFSET 關鍵字 128
7.2.3 簡化的類型轉換語法 128
7.2.4 一次性插入多條記錄 128
7.2.5 使用ILIKE 實現不區分大小寫的查 詢 129
7.2.6 可以返迴結果集的函數 129
7.2.7 限製對繼承錶的DELETE、UPDATE、INSERT 操作的影響範圍 130
7.2.8 DELETE USING 語法 130
7.2.9 將修改影響到的記錄行返迴給用戶 130
7.2.10 在查詢中使用復閤數據類型 131
7.2.11 DO 132
7.3 適用於聚閤操作的FILTER 子句 133
7.4 窗口函數 135
7.4.1 PARTITION BY 子句 136
7.4.2 ORDER BY 子句 136
7.5 CTE 錶達式 138
7.5.1 基本CTE 用法介紹 139
7.5.2 可寫CTE 用法介紹 140
7.5.3 遞歸CTE 用法介紹 140
7.6 LATERAL 橫嚮關聯語法 141
第8 章 函數編寫 144
8.1 PostgreSQL 函數功能剖析 145
8.1.1 函數功能基礎知識介紹 145
8.1.2 觸發器和觸發器函數 146
8.1.3 聚閤操作 147
8.1.4 受信與非受信語言 149
8.2 使用SQL 語言來編寫函數 149
8.2.1 編寫基本的SQL 函數 150
8.2.2 使用SQL 語言編寫聚閤函數 151
8.3 使用PL/pgSQL 語言編寫函數 153
8.3.1 編寫基礎的PL/pgSQL 函數 153
8.3.2 使用PL/pgSQL 編寫觸發器函數 154
8.4 使用PL/Python 語言編寫函數 155
8.5 使用PL/V8、PL/CoffeeScript 以及PL/LiveScript 語言來編寫函數 157
8.5.1 編寫基本的函數 159
8.5.2 使用PL/V8 來編寫聚閤函數 160
第9 章 查詢性能調優 162
9.1 通過EXPLAIN 命令查看語句執行計劃 162
9.1.1 EXPLAIN 選項 162
9.1.2 運行示例以及輸齣內容解釋 163
9.1.3 圖形化展示執行計劃 166
9.2 搜集語句的執行統計信息 167
9.3 人工乾預規劃器生成執行計劃的過程 168
9.3.1 策略設置 168
9.3.2 你的索引被用到瞭嗎 169
9.3.3 錶的統計信息 170
9.3.4 磁盤頁的隨機訪問成本以及磁盤驅動器的性能 171
9.4 數據緩存機製 172
9.5 編寫更好的SQL 語句 173
9.5.1 在SELECT 語句中濫用子查詢 174
9.5.2 盡量避免使用SELECT * 語法 176
9.5.3 善用CASE 語法 177
9.5.4 使用Filter 語法替代CASE 語法 178
第10 章 復製與外部數據 180
10.1 復製功能概覽 180
10.1.1 復製功能涉及的術語 181
10.1.2 復製機製的演進 182
10.1.3 第三方復製解決方案 182
10.2 復製環境的搭建 183
10.2.1 主服務器的配置 183
10.2.2 從屬服務器的配置 184
10.2.3 啓動復製進程 185
10.3 外部數據封裝器 186
10.3.1 查詢平麵文件 186
10.3.2 以不規則數組的形式查詢不規範的平麵文件 187
10.3.3 查詢其他PostgreSQL 服務實例上的數據 188
10.3.4 查詢非傳統數據源 190
附錄A PostgreSQL 的安裝 192
附錄B PostgreSQL 自帶的命令行工具 196
作者簡介 204
封麵介紹 204
作為一名在IT行業摸爬滾打多年的開發者,我對技術書籍的挑剔程度可想而知。《PostgreSQL即學即用(第2版)》這本書,從我個人角度來看,非常有潛力成為我案頭的常備工具書。首先,它的內容深度和廣度都做得相當不錯。從基礎的SQL語法講解,到PostgreSQL特有的數據類型和高級特性,幾乎涵蓋瞭日常開發和維護中可能遇到的絕大多數場景。我特彆看重書中對於並發控製和事務處理的闡述,因為在分布式係統和高並發場景下,這些知識的掌握直接關係到係統的穩定性和數據的一緻性。如果書中能夠提供清晰的理論解釋,並輔以實際的案例演示,那將是極其寶貴的。另外,我對書中關於擴展性和插件機製的介紹也抱有很高的期望。PostgreSQL強大的擴展性一直是它吸引人的重要原因之一,我希望這本書能夠帶領我瞭解如何利用現有的擴展,甚至是如何開發自己的擴展,從而進一步提升數據庫的功能和性能。
評分拿到《PostgreSQL即學即用(第2版)》這本書,我首先被它精煉的標題所吸引。“即學即用”這四個字,直接戳中瞭我的痛點。我一直以來都希望能夠掌握一門強大的數據庫技術,並且希望能夠快速地將所學應用到實際項目中,而不是陷入繁瑣的理論學習中。這本書的書寫風格,從我的初步翻閱來看,非常接地氣,語言通俗易懂,避免瞭晦澀難懂的專業術語堆砌。我尤其期待書中關於PostgreSQL性能調優的部分,因為在實際的開發過程中,數據庫性能往往是製約係統瓶頸的關鍵因素。我希望這本書能夠提供一些切實可行的調優方法和技巧,比如如何分析慢查詢、如何選擇閤適的索引策略、如何優化數據庫配置參數等等。此外,對於書中關於大數據量處理的章節,我也充滿瞭好奇。如何高效地存儲、查詢和管理海量數據,是許多項目麵臨的挑戰,《PostgreSQL即學即用(第2版)》是否能夠提供行之有效的解決方案,是我非常期待的。
評分剛拿到《PostgreSQL即學即用(第2版)》這本書,就感覺它是一本值得細細品味的寶藏。封麵設計簡潔大氣,書脊上的字體清晰,散發著一種專業而嚴謹的氣息,讓我立刻對其內容充滿瞭期待。打開書頁,紙張的質感也很不錯,印刷清晰,排版閤理,即使長時間閱讀也不會感到眼睛疲勞。這本書的定價也相當閤理,對於想要深入學習PostgreSQL的讀者來說,無疑是一筆超值的投資。我一直以來都在尋找一本能夠係統性講解PostgreSQL的圖書,並且希望它能夠涵蓋從基礎概念到高級特性的方方麵麵。通過初略翻閱,這本書的目錄結構就讓我眼前一亮,涵蓋瞭安裝配置、數據類型、SQL基礎、函數、視圖、索引、事務、並發控製,甚至還涉及到瞭復製、分區、擴展和性能調優等高級主題。這讓我相信,無論我目前的SQL水平如何,都能在這本書中找到適閤自己的內容,並逐步提升。這本書不僅適閤初學者入門,也能夠滿足有一定基礎的開發者和數據庫管理員深入學習的需求。我尤其期待書中關於性能調優的部分,因為在實際工作中,優化數據庫性能一直是比較棘手的問題,希望能從這本書中學習到一些行之有效的技巧和方法。
評分翻開《PostgreSQL即學即用(第2版)》,一股撲麵而來的知識氣息瞬間吸引瞭我。這本書的排版設計非常人性化,大量的代碼示例都清晰地展示齣來,並且有詳細的解釋,這對於我這種需要邊學邊練的讀者來說,簡直是福音。我特彆喜歡書中對於一些概念的講解,比如它不會直接扔給你一堆術語,而是會用通俗易懂的比喻和圖示來幫助理解,這大大降低瞭學習門檻。我曾經嘗試過閱讀其他關於PostgreSQL的書籍,但很多都過於理論化,或者內容更新不及時,導緻學到的知識很快就過時瞭。而《PostgreSQL即學即用(第2版)》從名字上就強調瞭“即學即用”,這正是我所需要的。我希望這本書能夠提供大量的實際案例,讓我在學習的過程中能夠立刻將理論知識應用到實踐中,從而加深理解,形成肌肉記憶。書中關於SQL查詢優化的章節,是我非常關注的重點。我希望它能夠深入淺齣地講解各種優化技巧,例如如何選擇閤適的索引、如何分析執行計劃、如何編寫高效的SQL語句等等,這樣我就能在日常工作中顯著提升數據庫的查詢效率。
評分《PostgreSQL即學即用(第2版)》這本書,從我作為一個長期使用數據庫的開發者的角度來看,是一本具有極高實用價值的參考手冊。我一直對PostgreSQL開源且功能強大的特性頗為欣賞,但有時在深入理解其某些復雜功能時,還是會感到些許吃力。這本書恰好填補瞭這個空白。我希望它能提供清晰的、分步驟的指導,能夠幫助我快速掌握PostgreSQL的各項核心技能。尤其是書中關於數據備份與恢復、高可用性方案(如主從復製、流復製)的章節,這對於保證數據的安全性和業務的連續性至關重要。我希望書中能夠詳細介紹這些方案的配置方法、原理以及在實際應用中可能遇到的問題和解決方案。此外,對於書中關於PostgreSQL的擴展性和插件生態的介紹,我也非常感興趣。瞭解如何利用現有的強大插件來增強數據庫的功能,或者為特定業務場景開發自定義函數和類型,這能極大地提升開發效率和應用性能。
評分一直在京東上買書,送貨很快,很負責
評分一本用來學習的編程的方法
評分專業書籍,反正我看不懂。。。
評分3、蘋果、梨切成碎末;白蘿蔔刨成絲;蒜、薑切碎末,韭菜洗淨切成段,蝦皮剁碎備用
評分閤租想的一樣
評分工作中有需要查看,很有用
評分快遞真的很給力,很喜歡哈
評分書不錯,適閤初學者。
評分書很實用
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有