cover

PostgreSQL即学即用(第2版)

Regina Obe Leo Hsu / 人民邮电出版社 / 2016

本教程将帮助你理解和使用PostgreSQL 这一开源数据库系统,通过示例 展示了如何实现在其他数据库中难以或无法完成的任务,内容覆盖了 LATERAL 查询、增强的JSON 支持、物化视图和其他关键话题。 本教程适合数据库管理员、后端开发人员以及其他对PostgreSQL 感兴趣 的学习者。

¥29.99 / 3个月在线服务,赠送PDF电子书
  • 正版授权内容
  • 在线练习环境
  • 答疑服务支持
  • 离线PDF下载
版权声明 O'Reilly Media, Inc. 介绍 业界评论 前言 本书读者 PostgreSQL的特别之处以及选用理由 不适用PostgreSQL的场景 如何获取本书使用的数据和示例代码 关于PostgreSQL的更多信息 代码与输出格式 排版约定 使用代码示例 Safari® Books Online 联系我们 第 1 章 基础知识 1.1 如何获得PostgreSQL 1.2 管理工具 1.2.1 psql 1.2.2 pgAdmin 1.2.3 phpPgAdmin 1.2.4 Adminer 1.3 PostgreSQL数据库对象 1.4 最新版本的PostgreSQL中引入的新特性 1.4.1 为什么要升级 1.4.2 PostgreSQL 9.4版中引入的新特性 1.4.3 PostgreSQL 9.3版新特性列表 1.4.4 PostgreSQL 9.2版新特性列表 1.4.5 PostgreSQL 9.1版新特性列表 1.5 数据库驱动程序 1.6 如何获得帮助 1.7 PostgreSQL的主要衍生版本 第 2 章 数据库管理 2.1 配置文件 2.1.1 postgresql.conf 2.1.2 pg_hba.conf 2.1.3 配置文件的重新加载 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的系统账号(postgres) 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.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 在pgAdmin中调用psql 4.2.2 在pgAdmin中编辑postgresql.conf和pg_hba.conf 文件 4.2.3 创建数据库资产并设置权限 4.2.4 数据导入和导出 4.2.5 备份与恢复 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.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.7 XML数据类型 5.7.1 插入XML数据 5.7.2 查询XML数据 5.8 自定义数据类型和复合数据类型 5.8.1 所有表都有一个对应的自定义数据类型 5.8.2 构建自定义数据类型 5.8.3 为自定义数据类型构建运算符和函数 第 6 章 表、约束和索引 6.1 表 6.1.1 基本的建表操作 6.1.2 继承表 6.1.3 无日志表 6.1.4 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 可以返回结果集的函数 7.2.7 限制对继承表的DELETE、UPDATE、INSERT操作的影响范围 7.2.8 DELETE USING语法 7.2.9 将修改影响到的记录行返回给用户 7.2.10 在查询中使用复合数据类型 7.2.11 DO 7.3 适用于聚合操作的FILTER子句 7.4 窗口函数 7.4.1 PARTITION BY子句 7.4.2 ORDER BY子句 7.5 CTE表达式 7.5.1 基本CTE用法介绍 7.5.2 可写CTE用法介绍 7.5.3 递归CTE用法介绍 7.6 LATERAL横向关联语法 第 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来编写聚合函数 第 9 章 查询性能调优 9.1 通过EXPLAIN命令查看语句执行计划 9.1.1 EXPLAIN选项 9.1.2 运行示例以及输出内容解释 9.1.3 图形化展示执行计划 9.2 搜集语句的执行统计信息 9.3 人工干预规划器生成执行计划的过程 9.3.1 策略设置 9.3.2 你的索引被用到了吗 9.3.3 表的统计信息 9.3.4 磁盘页的随机访问成本以及磁盘驱动器的性能 9.4 数据缓存机制 9.5 编写更好的SQL语句 9.5.1 在SELECT语句中滥用子查询 9.5.2 尽量避免使用SELECT *语法 9.5.3 善用CASE语法 9.5.4 使用Filter语法替代CASE语法 第 10 章 复制与外部数据 10.1 复制功能概览 10.1.1 复制功能涉及的术语 10.1.2 复制机制的演进 10.1.3 第三方复制解决方案 10.2 复制环境的搭建 10.2.1 主服务器的配置 10.2.2 从属服务器的配置 10.2.3 启动复制进程 10.3 外部数据封装器 10.3.1 查询平面文件 10.3.2 以不规则数组的形式查询不规范的平面文件 10.3.3 查询其他PostgreSQL服务实例上的数据 10.3.4 查询非传统数据源 附录 A PostgreSQL 的安装 A.1 Windows以及桌面Linux环境 A.2 CentOS、Fedora、Red Hat以及Scientific Linux A.3 Debian和Ubuntu A.4 FreeBSD A.5 Mac OS X 附录 B PostgreSQL 自带的命令行工具 B.1 使用pg_dump进行数据库备份 B.2 服务器级备份工具pg_dumpall B.3 database数据恢复工具pg_restore B.4 交互模式下的psql命令 B.5 非交互模式下的psql命令 作者简介 封面介绍