编辑推荐

  PostgreSQL即学即用(第2版)
  你是否正在考虑将业务系统数据库迁移到PostgreSQL上?《PostgreSQL即学即用(第2版)》内容简明扼要、提纲挈领,是**的PostgreSQL快速上手指南,可以帮助你快速地学习、理解并运用好这款开源数据库。从《PostgreSQL即学即用(第2版)》中,你不仅能学到PostgreSQL9.2、9.3和9.4版中的企业级特性,还将了解到PostgreSQL不但是一套数据库系统,更是一个功能强大的应用开发平台。
  《PostgreSQL即学即用(第2版)》以众多示例贯穿始终,演示了如何实现在别的数据库中难以实现或者根本不可能实现的任务。《PostgreSQL即学即用(第2版)》第2版涵盖了LATERAL横向关联查询语法、增强的JSON支持、物化视图机制以及其他重要功能特性。即使你已经是PostgreSQL用户,也能从《PostgreSQL即学即用(第2版)》中学到以前未曾了解过的一些功能。
  通过阅读《PostgreSQL即学即用(第2版)》,你将学到:
  如何执行基本的数据库管理任务,比如角色管理、数据库创建以及数据备份和恢复等;
  如何使用psql命令行工具以及pgAdmin图形化管理工具;
  PostgreSQL的表、约束和索引等数据库对象的特性和使用方法;
  PostgreSQL所特有的若干功能强大的SQL语法;
  如何使用多种不同的编程语言来编写PostgreSQL函数;
  如何实施语句调优以充分挖掘服务器硬件的潜能;
  如何通过外部数据封装器来查询多种多样的外部数据;
  如何使用系统内置的复制筛选器进行数据复制。

内容简介

  《PostgreSQL即学即用(第2版)》将帮助你理解和使用PostgreSQL这一开源数据库系统。你不仅会学到版本9.2、9.3和9.4中的企业级特性,还会发现PostgreSQL不只是个数据库系统,也是一个出色的应用平台。《PostgreSQL即学即用(第2版)》通过示例展示了如何实现在其他数据库中难以或无法完成的任务。这一版内容覆盖了LATERAL查询、增强的JSON支持、物化视图和其他关键话题。

作者简介

  ReginaObe,是数据库咨询公司Paragon的负责人之一,在编程语言和数据库系统方面有15年以上的专业经验。她是PostGIS指导委员会成员,也是PostGIS核心开发团队的成员。PostGISinAction一书的合著者。

  LeoHsu,也是Paragon公司的负责人之一,曾为大大小小的组织开发过数据库,有15年以上的专业经验。PostGISinAction一书的合著者。

精彩书评

  这《PostgreSQL即学即用(第2版)》篇幅不长......对系统管理员、数据库管理员以及开发人员来说,如果有其他数据库系统的使用经验,希望不必深入研究各类细节就能够对PostgreSQL快速上手,那么阅读这《PostgreSQL即学即用(第2版)》再合适不过了。
  ——AndrewDunstan,PostgreSQLExperts公司高级顾问,PostgreSQL核心代码提交者

目录

前言xi
第1章 基础知识1
1.1 如何获得PostgreSQL1
1.2 管理工具1
1.2.1 psql2
1.2.2 pgAdmin2
1.2.3 phpPgAdmin3
1.2.4 Adminer3
1.3 PostgreSQL数据库对象4
1.4 最新版本的PostgreSQL中引入的新特性9
1.4.1 为什么要升级10
1.4.2 PostgreSQL9.4版中引入的新特性10
1.4.3 PostgreSQL9.3版新特性列表12
1.4.4 PostgreSQL9.2版新特性列表13
1.4.5 PostgreSQL9.1版新特性列表14
1.5 数据库驱动程序14
1.6 如何获得帮助15
1.7 PostgreSQL的主要衍生版本15
第2章 数据库管理17
2.1 配置文件17
2.1.1 postgresql.conf18
2.1.2 pg_hba.conf21
2.1.3 配置文件的重新加载23
2.2 连接管理24
2.3 角色25
2.3.1 创建可登录角色26
2.3.2 创建组角色26
2.4 创建database28
2.4.1 模板数据库28
2.4.2 schema的使用29
2.5 权限管理31
2.5.1 权限的类型31
2.5.2 入门介绍31
2.5.3 GRANT32
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中调用psql65
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 安装pgAgent76
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类型的二进制版本:jsonb101
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 TYPEOF111
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 DISTINCTON127
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 DELETEUSING语法130
7.2.9 将修改影响到的记录行返回给用户130
7.2.10 在查询中使用复合数据类型131
7.2.11 DO132
7.3 适用于聚合操作的FILTER子句133
7.4 窗口函数135
7.4.1 PARTITIONBY子句136
7.4.2 ORDERBY子句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


其他推荐