前言 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的各项核心技能。尤其是书中关于数据备份与恢复、高可用性方案(如主从复制、流复制)的章节,这对于保证数据的安全性和业务的连续性至关重要。我希望书中能够详细介绍这些方案的配置方法、原理以及在实际应用中可能遇到的问题和解决方案。此外,对于书中关于PostgreSQL的扩展性和插件生态的介绍,我也非常感兴趣。了解如何利用现有的强大插件来增强数据库的功能,或者为特定业务场景开发自定义函数和类型,这能极大地提升开发效率和应用性能。
评分刚拿到《PostgreSQL即学即用(第2版)》这本书,就感觉它是一本值得细细品味的宝藏。封面设计简洁大气,书脊上的字体清晰,散发着一种专业而严谨的气息,让我立刻对其内容充满了期待。打开书页,纸张的质感也很不错,印刷清晰,排版合理,即使长时间阅读也不会感到眼睛疲劳。这本书的定价也相当合理,对于想要深入学习PostgreSQL的读者来说,无疑是一笔超值的投资。我一直以来都在寻找一本能够系统性讲解PostgreSQL的图书,并且希望它能够涵盖从基础概念到高级特性的方方面面。通过初略翻阅,这本书的目录结构就让我眼前一亮,涵盖了安装配置、数据类型、SQL基础、函数、视图、索引、事务、并发控制,甚至还涉及到了复制、分区、扩展和性能调优等高级主题。这让我相信,无论我目前的SQL水平如何,都能在这本书中找到适合自己的内容,并逐步提升。这本书不仅适合初学者入门,也能够满足有一定基础的开发者和数据库管理员深入学习的需求。我尤其期待书中关于性能调优的部分,因为在实际工作中,优化数据库性能一直是比较棘手的问题,希望能从这本书中学习到一些行之有效的技巧和方法。
评分翻开《PostgreSQL即学即用(第2版)》,一股扑面而来的知识气息瞬间吸引了我。这本书的排版设计非常人性化,大量的代码示例都清晰地展示出来,并且有详细的解释,这对于我这种需要边学边练的读者来说,简直是福音。我特别喜欢书中对于一些概念的讲解,比如它不会直接扔给你一堆术语,而是会用通俗易懂的比喻和图示来帮助理解,这大大降低了学习门槛。我曾经尝试过阅读其他关于PostgreSQL的书籍,但很多都过于理论化,或者内容更新不及时,导致学到的知识很快就过时了。而《PostgreSQL即学即用(第2版)》从名字上就强调了“即学即用”,这正是我所需要的。我希望这本书能够提供大量的实际案例,让我在学习的过程中能够立刻将理论知识应用到实践中,从而加深理解,形成肌肉记忆。书中关于SQL查询优化的章节,是我非常关注的重点。我希望它能够深入浅出地讲解各种优化技巧,例如如何选择合适的索引、如何分析执行计划、如何编写高效的SQL语句等等,这样我就能在日常工作中显著提升数据库的查询效率。
评分书本的质量非常不错,非常的满意。
评分正版,满意!!!!!
评分有用的参考书可以看看
评分书一般,不建议购买
评分书不厚,学到的都是干货,180-80,很划算。
评分2016年的新书,肯定要买以下咯,了解了解
评分给同事买的。。。。
评分pg的书,国内太少了,跟pg的品质不匹配
评分还可以,讲的很清楚
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有