互联网
类型
8.3
豆瓣评分
可以朗读
语音朗读
293千字
字数
2016-01-01
发行日期
展开全部
主编推荐语
帮助你理解和使用PostgreSQL这一开源数据库系统。
内容简介
你不仅会学到版本9.2、9.3 和9.4中的企业级特性,还会发现PostgreSQL 不只是个数据库系统,也是一个出色的应用平台。本书通过示例展示了如何实现在其他数据库中难以或无法完成的任务。这一版内容覆盖了LATERAL 查询、增强的JSON 支持、物化视图和其他关键话题。
目录
- 版权信息
- O'Reilly Media, Inc. 介绍
- 业界评论
- 前言
- 本书读者
- 关于PostgreSQL的更多信息
- 代码与输出格式
- 排版约定
- 使用代码示例
- O'Reilly Safari
- 联系我们
- 电子书
- 第1章 基础知识
- 1.1 为什么应该选择PostgreSQL
- 1.2 不适用PostgreSQL的场景
- 1.3 如何获得PostgreSQL
- 1.4 管理工具
- 1.4.1 psql
- 1.4.2 pgAdmin
- 1.4.3 phpPgAdmin
- 1.4.4 Adminer
- 1.5 PostgreSQL数据库对象
- 1.6 最新版本的PostgreSQL中引入的新特性
- 1.6.1 为什么要升级
- 1.6.2 PostgreSQL 10中引入的新特性
- 1.6.3 PostgreSQL 9.6中引入的新特性
- 1.6.4 PostgreSQL 9.5中引入的新特性
- 1.6.5 PostgreSQL 9.4中引入的新特性
- 1.7 数据库驱动程序
- 1.8 如何获得帮助
- 1.9 PostgreSQL的主要衍生版本
- 第2章 数据库管理
- 2.1 配置文件
- 2.1.1 让配置文件生效
- 2.1.2 postgresql.conf
- 2.1.3 pg_hba.conf
- 2.2 连接管理
- 查看被阻塞语句的情况
- 2.3 角色
- 2.3.1 创建可登录角色
- 2.3.2 创建组角色
- 2.4 创建database
- 2.4.1 模板数据库
- 2.4.2 schema的使用
- 2.5 权限管理
- 2.5.1 权限的类型
- 2.5.2 入门介绍
- 2.5.3 GRANT
- 2.5.4 默认权限
- 2.5.5 PostgreSQL权限体系中一些与众不同的特点
- 2.6 扩展包机制
- 2.6.1 扩展包的安装
- 2.6.2 通用扩展包
- 2.7 备份与恢复
- 2.7.1 使用pg_dump进行有选择性的备份
- 2.7.2 使用pg_dumpall进行全局备份
- 2.7.3 数据恢复
- 2.8 基于表空间机制进行存储管理
- 2.8.1 表空间的创建
- 2.8.2 在表空间之间迁移对象
- 2.9 禁止的行为
- 2.9.1 切记不要删除PostgreSQL系统文件
- 2.9.2 不要把操作系统管理员权限授予PostgreSQL的系统账号
- 2.9.3 不要把shared_buffers缓存区设置得过大
- 2.9.4 不要将PostgreSQL服务器的侦听端口设为一个已被其他程序占用的端口
- 第3章 psql工具
- 3.1 环境变量
- 3.2 psql的两种操作模式:交互模式与非交互模式
- 3.3 定制psql操作环境
- 3.3.1 自定义psql界面提示符
- 3.3.2 语句执行时间统计
- 3.3.3 事务自动提交
- 3.3.4 命令别名
- 3.3.5 取出前面执行过的命令行
- 3.4 psql使用技巧
- 3.4.1 执行shell命令
- 3.4.2 用watch命令重复执行语句
- 3.4.3 显示对象信息
- 3.4.4 行转列视图
- 3.4.5 执行动态SQL
- 3.5 使用psql实现数据的导入和导出
- 3.5.1 使用psql进行数据导入
- 3.5.2 使用psql进行数据导出
- 3.5.3 从外部程序复制数据以及将数据复制到外部程序
- 3.6 使用psql制作简单的报表
- 第4章 pgAdmin的使用
- 4.1 pgAdmin入门
- 4.1.1 功能概览
- 4.1.2 如何连接到PostgreSQL服务器
- 4.1.3 pgAdmin界面导航
- 4.2 pgAdmin功能特性介绍
- 4.2.1 根据表定义自动生成SQL语句
- 4.2.2 在pgAdmin3中调用psql
- 4.2.3 在pgAdmin3中编辑postgresql.conf和pg_hba.conf文件
- 4.2.4 创建数据库对象并设置权限
- 4.2.5 数据导入和导出
- 4.2.6 备份与恢复
- 4.3 pgScript脚本机制
- 4.4 以图形化方式解释执行计划
- 4.5 使用pgAgent执行定时任务
- 4.5.1 安装pgAgent
- 4.5.2 规划定时任务
- 4.5.3 一些有用的pgAgent相关查询语句
- 第5章 数据类型
- 5.1 数值类型
- 5.1.1 serial类型
- 5.1.2 生成数组序列的函数
- 5.2 文本类型
- 5.2.1 字符串函数
- 5.2.2 将字符串拆分为数组、表或者子字符串
- 5.2.3 正则表达式和模式匹配
- 5.3 时间类型
- 5.3.1 时区详解
- 5.3.2 日期时间类型的运算符和函数
- 5.4 数组类型
- 5.4.1 数组构造函数
- 5.4.2 将数组元素展开为记录行
- 5.4.3 数组的拆分与连接
- 5.4.4 引用数组中的元素
- 5.4.5 数组包含性检查
- 5.5 区间类型
- 5.5.1 离散区间和连续区间
- 5.5.2 原生支持的区间类型
- 5.5.3 定义区间的方法
- 5.5.4 定义含区间类型字段的表
- 5.5.5 适用于区间类型的运算符
- 5.6 JSON数据类型
- 5.6.1 插入JSON数据
- 5.6.2 查询JSON数据
- 5.6.3 输出JSON数据
- 5.6.4 JSON类型的二进制版本:jsonb
- 5.6.5 编辑JSONB类型的数据
- 5.7 XML数据类型
- 5.7.1 插入XML数据
- 5.7.2 查询XML数据
- 5.8 全文检索
- 5.8.1 FTS配置库
- 5.8.2 TSVector原始文本向量
- 5.8.3 TSQueries检索条件向量
- 5.8.4 使用全文检索
- 5.8.5 对检索结果进行排序
- 5.8.6 全文检索向量信息的裁减
- 5.8.7 全文检索机制对JSON和JSONB数据类型的支持
- 5.9 自定义数据类型和复合数据类型
- 5.9.1 所有表都有一个对应的自定义数据类型
- 5.9.2 构建自定义数据类型
- 5.9.3 复合类型中的空值处理
- 5.9.4 为自定义数据类型构建运算符和函数
- 第6章 表、约束和索引
- 6.1 表
- 6.1.1 基本的建表操作
- 6.1.2 继承表
- 6.1.3 原生分区表支持
- 6.1.4 无日志表
- 6.1.5 TYPE OF
- 6.2 约束机制
- 6.2.1 外键约束
- 6.2.2 唯一性约束
- 6.2.3 check约束
- 6.2.4 排他性约束
- 6.3 索引
- 6.3.1 PostgreSQL原生支持的索引类型
- 6.3.2 运算符类
- 6.3.3 函数索引
- 6.3.4 基于部分记录的索引
- 6.3.5 多列索引
- 第7章 PostgreSQL的特色SQL语法
- 7.1 视图
- 7.1.1 单表视图
- 7.1.2 使用触发器来更新视图
- 7.1.3 物化视图
- 7.2 灵活易用的PostgreSQL专有SQL语法
- 7.2.1 DISTINCT ON
- 7.2.2 LIMIT和OFFSET关键字
- 7.2.3 简化的类型转换语法
- 7.2.4 一次性插入多条记录
- 7.2.5 使用ILIKE实现不区分大小写的查询
- 7.2.6 使用ANY运算符进行数组搜索
- 7.2.7 可以返回结果集的函数
- 7.2.8 限制对继承表的DELETE、UPDATE、INSERT操作的影响范围
- 7.2.9 DELETE USING语法
- 7.2.10 将修改影响到的记录行返回给用户
- 7.2.11 UPSERT:INSERT时如果主键冲突则进行UPDATE
- 7.2.12 在查询中使用复合数据类型
- 7.2.13 使用$文本引用符
- 7.2.14 DO
- 7.2.15 适用于聚合操作的FILTER子句
- 7.2.16 查询百分位数与最高出现频率数
- 7.3 窗口函数
- 7.3.1 PARTITION BY子句
- 7.3.2 ORDER BY子句
- 7.4 CTE表达式
- 7.4.1 基本CTE用法介绍
- 7.4.2 可写CTE用法介绍
- 7.4.3 递归CTE用法介绍
- 7.5 LATERAL横向关联语法
- 7.6 WWITH ORDINALITY子句
- 7.7 GROUPING SETS、CUBE和ROLLUP语法
- 第8章 函数编写
- 8.1 PostgreSQL函数功能剖析
- 8.1.1 函数功能基础知识介绍
- 8.1.2 触发器和触发器函数
- 8.1.3 聚合操作
- 8.1.4 受信与非受信语言
- 8.2 使用SQL语言来编写函数
- 8.2.1 编写基本的SQL函数
- 8.2.2 使用SQL语言编写聚合函数
- 8.3 使用PL/pgSQL语言编写函数
- 8.3.1 编写基础的PL/pgSQL函数
- 8.3.2 使用PL/pgSQL编写触发器函数
- 8.4 使用PL/Python语言编写函数
- 编写基本的Python函数
- 8.5 使用PL/V8、PL/CoffeeScript以及PL/LiveScript语言来编写函数
- 8.5.1 编写基本的函数
- 8.5.2 使用PL/V8来编写聚合函数
- 8.5.3 使用PL/V8编写窗口函数
- 第9章 查询性能调优
- 9.1 通过EXPLAIN命令查看语句执行计划
- 9.1.1 EXPLAIN选项
- 9.1.2 运行示例以及输出内容解释
- 9.1.3 图形化展示执行计划
- 9.2 搜集语句的执行统计信息
- 9.3 编写更好的SQL语句
- 9.3.1 在SELECT语句中滥用子查询
- 9.3.2 尽量避免使用SELECT *语法
- 9.3.3 善用CASE语法
- 9.3.4 使用Filter语法替代CASE语法
- 9.4 并行化语句执行
- 9.4.1 并行化的执行计划是什么样子
- 9.4.2 并行化扫描
- 9.4.3 并行化关联操作
- 9.5 人工干预规划器生成执行计划的过程
- 9.5.1 策略设置
- 9.5.2 你的索引被用到了吗
- 9.5.3 表的统计信息
- 9.5.4 磁盘页的随机访问成本以及磁盘驱动器的性能
- 9.6 数据缓存机制
- 第10章 复制与外部数据
- 10.1 复制功能概览
- 10.1.1 复制功能涉及的术语
- 10.1.2 复制机制的演进
- 10.1.3 第三方复制解决方案
- 10.2 复制环境的搭建
- 10.2.1 主服务器的配置
- 10.2.2 为从属服务器配置全量复制环境
- 10.2.3 启动流复制进程
- 10.2.4 使用逻辑复制实现部分表或者部分database的复制
- 10.3 外部数据封装器
- 10.3.1 查询平面文件
- 10.3.2 以不规则数组的形式查询不规范的平面文件
- 10.3.3 查询其他PostgreSQL服务实例上的数据
- 10.3.4 使用ogr_fdw查询其他二维表形式的数据源
- 10.3.5 查询非传统数据源
- 附录A PostgreSQL的安装
- A.1 Windows以及桌面Linux环境
- A.2 CentOS、Fedora、Red Hat以及Scientific Linux
- A.3 Debian和Ubuntu
- A.4 FreeBSD
- A.5 macOS
- 附录B PostgreSQL自带的命令行工具
- B.1 使用pg_dump进行数据库备份
- B.2 服务器级备份工具pg_dumpall
- B.3 database数据恢复工具pg_restore
- B.4 交互模式下的psql命令
- B.5 非交互模式下的psql命令
- 作者简介
- 封面介绍
展开全部
出版方
人民邮电出版社·图灵出品
图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。