【商业活动】:想快速上手PostgreSQL的朋友有福了 |
doudou586 发布于2016-01-20 07:57:37 评论: 6 浏览: 10574 顶: 1331 踩: 1146 |
PostgreSQL 新增一本中文书籍,原书名《PostgreSQL: Up and Running, 2nd Edition》,译名:《PostgreSQL即学即用(第2版)》,丁奇鹏译, 想快速对 PG 上手的朋友们有福了。该书以众多示例贯穿始终,演示了如何实现在别的数据库中难以实现或者根本不可能实现的任务。本书涵盖了LATERAL横向关联查询语法、增强的JSON支持、物化视图机制以及其他重要功能特性。
以下为该书在亚马逊网站上的介绍
你是否正在考虑将业务系统数据库迁移到PostgreSQL上?本书内容简明扼要、提纲挈领,是极佳的PostgreSQL快速上手指南,可以帮助你快速地学习、理解并运用好这款开源数据库。从本书中,你不仅能学到PostgreSQL 9.2、9.3和9.4版中的企业级特性,还将了解到PostgreSQL不但是一套数据库系统,更是一个功能强大的应用开发平台。
本书以众多示例贯穿始终,演示了如何实现在别的数据库中难以实现或者根本不可能实现的任务。本书第2版涵盖了LATERAL横向关联查询语法、增强的JSON支持、物化视图机制以及其他重要功能特性。即使你已经是PostgreSQL用户,也能从本书中学到以前未曾了解过的一些功能。
通过阅读本书,你将学到:
“这本书篇幅不长......对系统管理员、数据库管理员以及开发人员来说,如果有其他数据库系统的使用经验,希望不必深入研究各类细节就能够对PostgreSQL快速上手,那么阅读这本书再合适不过了。”——Andrew Dunstan,PostgreSQL Experts公司高级顾问,PostgreSQL核心代码提交者
作者:[美] 奥贝(Regina Obe),[美] 徐(Leo Hsu) 译者:丁奇鹏
Regina Obe是数据库咨询公司Paragon的负责人之一,在编程语言和数据库系统方面有15年以上的专业经验。她是PostGIS指导委员会成员,也是PostGIS核心开发团队的成员。PostGIS in Action一书的合著者。
Leo Hsu也是Paragon公司的负责人之一,曾为大大小小的组织开发过数据库,有15年以上的专业经验。PostGIS in Action一书的合著者。
前言 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