PostgreSQL 9.6从零开始学(视频教学版)

PostgreSQL 9.6从零开始学(视频教学版) pdf epub mobi txt 电子书 下载 2025

李小威 著
图书标签:
  • PostgreSQL
  • 数据库
  • SQL
  • 9
  • 6
  • 视频教程
  • 从零开始
  • 入门
  • 开发
  • 数据管理
  • 编程
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 清华大学出版社
ISBN:9787302496212
版次:1
商品编码:12326620
包装:平装
开本:16开
出版时间:2018-03-01
用纸:胶版纸
页数:348
字数:582000
正文语种:中文

具体描述

产品特色

编辑推荐

PostgreSQL 是免费开源的对象关系型数据库管理系统,众多企业数据库的特性使之成为开源数据库中*可能用于商业化应用开发的一个。同时,PostgreSQL提供了众多的开发接口,非常方便开发人员的开发。
本书全面介绍PostgreSQL 9.6的安装与配置、库表的操作、SQL语言、函数、索引、事务和锁、视图、触发器、安全机制、备份与恢复、高可用、负载均衡、数据复制、服务器配置、数据库监控以及数据库内部结构等内容。
本书既适合PostgreSQL初学者和应用开发人员使用,也适合高等院校和培训学校相关专业的师生教学参考。

内容简介

本书循序渐进地介绍PostgreSQL 9.6数据库系统管理与开发的相关基础知识,并提供大量具体操作PostgreSQL 9.6数据库的示例。通过本书的学习,读者可以完整地掌握PostgreSQL 9.6的技术要点并具备系统管理与开发的基本技能。
全书共分为18章,主要内容包括PostgreSQL 9.6的安装与配置、数据库的基本操作、数据表的基本操作、SQL语言基础、轻松掌握SQL语句、认识函数、PostgreSQL查询、数据的更新、创建和使用索引、事务和锁、视图操作、触发器、PostgreSQL的安全机制、数据库的备份与还原、高可用、负载均衡、数据复制、服务器配置与数据库监控、内部结构等。同时,本书在大部分章节的后面提供典型习题,供读者操作练习,从而加深理解。
本书适合PostgreSQL 9.6数据库初学者学习,同时也适合想全面了解PostgreSQL 9.6的数据库系统管理与开发的人员阅读。

作者简介

李小威,软件开发项目经理,精通网站开发和windows程序开发,精通window桌面软件和网络编程,精通各种编程语言和数据库开发知识,具有多年实战开发经验。

目录

目 录
第1章 初识PostgreSQL 1
1.1 数据库基础 1
1.1.1 什么是数据库 1
1.1.2 表 2
1.1.3 数据类型 2
1.1.4 主键 2
1.1.5 什么是开源 2
1.2 数据库技术构成 3
1.2.1 数据库系统 3
1.2.2 SQL语言 4
1.2.3 数据库访问技术 5
1.3 什么是PostgreSQL 6
1.3.1 客户机-服务器软件 6
1.3.2 PostgreSQL发展历程 6
1.3.3 PostgreSQL的优势 7
1.4 如何学习PostgreSQL 7
第2章 PostgreSQL 9.6的安装与配置 9
2.1 PostgreSQL 9.6的新功能 9
2.2 安装与启动PostgreSQL 9.6 10
2.2.1 下载PostgreSQL 9.6安装包 10
2.2.2 安装PostgreSQL 9.6 13
2.2.3 启动PostgreSQL服务器 15
2.3 pgAdmin 4的基本操作 17
2.3.1 pgAdmin 4的启动与连接 18
2.3.2 pgAdmin 4的界面简介 19
2.3.3 配置PostgreSQL服务器的属性 24
2.3.4 执行SQL查询语句 25
2.4 常见问题及解答 25
疑问1:连接pgAdmin时提示“服务器未监听”的错误怎么办? 26
疑问2:如何修改服务器登录密码? 26
2.5 本章小结 26
2.6 经典习题 26
第3章 数据库的基本操作 27
3.1 创建数据库 27
3.1.1 使用对象浏览器创建数据库 27
3.1.2 使用SQL创建数据库 29
3.2 修改数据库的属性 31
3.2.1 使用对象浏览器修改数据库的属性 31
3.2.2 使用SQL语句修改数据库的属性 32
3.3 删除数据库 32
3.3.1 使用对象浏览器删除数据库 32
3.3.2 使用SQL语句删除数据库 33
3.4 综合案例——数据库的创建和删除 33
3.5 常见问题及解答 35
疑问1:如何使用SQL语句创建具有一定条件的数据库? 35
疑问2:使用DROP语句时需要注意什么问题? 35
3.6 经典习题 35
第4章 数据表的基本操作 36
4.1 创建数据表 36
4.1.1 创建数据表的基本方法 36
4.1.2 使用主键约束 41
4.1.3 使用外键约束 43
4.1.4 使用非空约束 45
4.1.5 使用唯一性约束 45
4.1.6 使用默认约束 47
4.2 修改数据表 47
4.2.1 修改表名 48
4.2.2 修改字段的数据类型 48
4.2.3 修改字段名 50
4.2.4 添加字段 51
4.2.5 删除字段 52
4.2.6 删除表的外键约束 53
4.3 删除数据表 54
4.3.1 删除没有被关联的表 54
4.3.2 删除被其他表关联的主表 55

4.4 综合案例——数据表的基本操作 56
4.5 常见问题及解答 62
疑问1:删除和修改表时需注意什么问题? 62
疑问2:每一个表中都要有一个主键吗? 62
4.6 经典习题 62
第5章 数据类型和运算符 64
5.1 PostgreSQL数据类型介绍 64
5.1.1 整数类型 64
5.1.2 浮点数类型 65
5.1.3 任意精度类型 66
5.1.4 日期与时间类型 66
5.1.5 字符串类型 71
5.1.6 二进制类型 73
5.1.7 布尔类型 73
5.1.8 数组类型 74
5.2 如何选择数据类型 75
5.3 常见运算符介绍 75
5.3.1 运算符概述 75
5.3.2 算术运算符 76
5.3.3 比较运算符 77
5.3.4 逻辑运算符 83
5.3.5 运算符的优先级 84
5.4 综合案例——运算符的使用 85
5.5 常见问题及解答 87
疑问1:PostgreSQL中可以存储文件吗? 87
疑问2:二进制和普通字符串的区别是什么? 87
5.6 经典习题 87
第6章 PostgreSQL函数 88
6.1 PostgreSQL函数简介 88
6.2 数学函数 88
6.2.1 绝对值函数ABS(x)和返回圆周率的函数PI() 89
6.2.2 平方根函数SQRT(x)和求余函数MOD(x,y) 89
6.2.3 获取整数的函数CEIL(x)、CEILING(x)和FLOOR(x) 90
6.2.4 四舍五入函数ROUND(x)和ROUND(x,y) 91
6.2.5 符号函数SIGN(x) 91
6.2.6 幂运算函数POW(x,y)、POWER(x,y)和EXP(x) 92
6.2.7 对数运算函数LOG(x) 92
6.2.8 角度与弧度相互转换的函数RADIANS(x)和DEGREES(x) 93
6.2.9 正弦函数SIN(x)和反正弦函数ASIN(x) 93
6.2.10 余弦函数COS(x)和反余弦函数ACOS(x) 94
6.2.11 正切函数TAN(x)、反正切函数ATAN(x)和余切函数COT(x) 94
6.3 字符串函数 95
6.3.1 计算字符串字符数和字符串长度的函数 95
6.3.2 合并字符串函数CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…) 96
6.3.3 获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n) 97
6.3.4 填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2) 98
6.3.5 删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s) 98
6.3.6 删除指定字符串的函数TRIM(s1 FROM s) 99
6.3.7 重复生成字符串的函数REPEAT(s,n) 100
6.3.8 替换函数REPLACE(s,s1,s2) 100
6.3.9 获取子串的函数SUBSTRING(s,n,len) 100
6.3.10 匹配子串开始位置的函数POSITION(str1 IN str) 101
6.3.11 字符串逆序函数REVERSE(s) 101
6.4 日期和时间函数 101
6.4.1 获取当前日期的函数和获取当前时间的函数 101
6.4.2 获取当前日期和时间的函数 102
6.4.3 获取日期指定值的函数 103
6.4.4 日期和时间的运算操作 104
6.5 条件判断函数 106
6.6 系统信息函数 107
6.6.1 获取PostgreSQL版本号 107
6.6.2 获取用户名的函数 107
6.7 加密和解密函数 108
6.7.1 加密函数MD5(str) 108
6.7.2 加密函数ENCODE(str,pswd_str) 108
6.7.3 解密函数DECODE(crypt_str,pswd_str) 108
6.8 改变数据类型的函数 109
6.9 综合案例——PostgreSQL函数的使用 109
6.10 常见问题及解答 112
疑问1:如何从日期时间值中获取年、月、日等部分日期或时间值? 112
疑问2:如何计算年龄? 112
6.11 经典习题 113
第7章 插入、更新与删除数据 114
7.1 插入数据 114
7.1.1 为表的所有字段插入数据 114
7.1.2 为表的指定字段插入数据 116
7.1.3 同时插入多条记录 117
7.1.4 将查询结果插入表中 118
7.2 更新数据 120
7.3 删除数据 122
7.4 综合案例——记录的插入、更新和删除 124
7.5 常见问题及解答 130
疑问1:插入记录时可以不指定字段名称吗? 130
疑问2:更新或者删除表时必须指定WHERE子句吗? 130
7.6 经典习题 130

前言/序言

前 言


本书是面向PostgreSQL 9.6初学者的一本高质量的书籍,通过详细的实用案例,让读者快速入门,再也不会为数据库而发愁。
本书特色
知识丰富全面:知识点由浅入深,几乎涵盖所有PostgreSQL 9.6的基础知识点和开发技术。
图文并茂:注重操作,图文并茂,在介绍案例的过程中,每一个操作均有对应步骤和过程说明。这种结合的方式使读者在学习过程中能够直观、清晰地看到操作的过程以及效果,便于更快地理解和掌握。
易学易用:颠覆传统“看”书的观念,变成一本能“操作”的图书。
案例丰富:把知识点融汇于系统的案例实训中,并且结合综合案例进行讲解和拓展,进而达到“知其然,并知其所以然”的效果。
提示技巧、贴心周到:本书对读者在学习过程中可能会遇到的疑难问题以“提示”和“技巧”的形式进行说明,以免读者在学习的过程中走弯路。
超值资源:本书400多个详细示例和大量经典习题,让你在实战应用中掌握PostgreSQL 9.6的每一项技能。
读者对象
本书是一本完整介绍PostgreSQL 9.6的教程,内容丰富,条理清晰,实用性强,适合以下读者学习使用:
? 对PostgreSQL 9.6完全不了解或者有一定了解的读者。
? 对数据库有兴趣的读者,并希望快速、全面地掌握PostgreSQL 9.6。
? 对没有任何PostgreSQL 9.6经验、想学习PostgreSQL 9.6并进行应用开发的读者。
代码、课件与教学视频
本书代码、课件与教学视频下载地址(注意数字与英文字母大小写)如下:
链接:https://pan.baidu.com/s/1smGqicd 密码:mjri
如果下载有问题或者有其他关于本书的问题,请联系电子邮箱booksaga@163.com,邮件主题为“PostgreSQL 9.6从零开始学”。
鸣谢
除了本书署名编者李小威(长期从事PostgreSQL实训的培训工作)外,参与本书编写的人员还有包惠利、张工厂、陈伟光、胡同夫、梁云亮、刘海松、刘玉萍、刘增产、孙若淞、王攀登、王维维、王英英、肖品和李园等人。虽然倾注了编者的努力,但由于水平有限,书中难免有疏漏之处,请读者谅解,如果遇到问题或有意见,敬请与我们联系,我们将全力提供帮助。



编 者
2018年2月


PostgreSQL 9.6 从零开始学 (视频教学版) 内容简介 本书旨在带领读者从零基础出发,全面掌握 PostgreSQL 9.6 数据库的管理与开发技能。通过系统性的讲解和丰富的视频演示,无论您是初学者,还是希望深入了解 PostgreSQL 的开发者或运维人员,都能在这本书中找到所需的知识和实践指导。本书内容详实,结构清晰,力求让读者在最短的时间内,以最直观的方式,扎实掌握 PostgreSQL 9.6 的核心概念和高级特性。 第一部分: PostgreSQL 基础入门 本部分将为读者打下坚实的 PostgreSQL 基础。我们将从最基本的概念入手,逐步引导您了解 PostgreSQL 的发展历程、安装部署、客户端连接等关键内容。 第一章: PostgreSQL 概览与安装部署 PostgreSQL 简介: 详细介绍 PostgreSQL 的发展历史、开源社区、核心优势(如 ACID 事务、可扩展性、丰富的数据类型等),以及其在不同应用场景中的广泛应用。我们会探讨 PostgreSQL 相较于其他关系型数据库的独特之处,让您深刻理解选择 PostgreSQL 的价值。 系统要求与环境准备: 说明在不同操作系统(Windows, Linux, macOS)上安装 PostgreSQL 9.6 的硬件和软件要求,并提供详细的系统环境配置建议,确保安装过程的顺利进行。 安装与配置: Windows 安装: 提供一步步的图形化安装教程,重点讲解安装向导中的各项选项,如安装路径、端口设置、数据目录、Postmaster 进程等。 Linux/macOS 安装: 演示通过源码编译安装和使用包管理器(如 apt, yum, brew)安装 PostgreSQL 的方法。详细介绍安装后的目录结构,以及如何启动、停止和重启 PostgreSQL 服务。 基本配置: 讲解 `postgresql.conf` 配置文件,重点介绍常用的配置参数,如 `listen_addresses`, `port`, `max_connections`, `shared_buffers`, `wal_buffers` 等,并解释其作用和优化建议。同时,介绍 `pg_hba.conf` 文件,讲解如何配置客户端连接的认证方式,确保数据库的安全访问。 首次连接与客户端工具: psql 命令行客户端: 详细介绍 `psql` 的基本使用方法,包括连接数据库、执行 SQL 命令、查看帮助信息、退出等。演示 `psql` 的常用快捷键和元命令,如 `l`, `dt`, `d`, `dn`, `du` 等,让您能高效地与数据库交互。 GUI 客户端介绍: 推荐并简要介绍常用的 PostgreSQL 图形化管理工具,如 pgAdmin,Navicat 等,并演示如何通过这些工具连接数据库,进行初步的数据库对象管理。 第二章: SQL 基础与数据类型 本章将带您走进 SQL(Structured Query Language)的世界,这是与 PostgreSQL 交互的核心语言。我们将深入讲解 SQL 的基本语法,并重点介绍 PostgreSQL 支持的丰富数据类型,为后续的数据库设计和开发奠定基础。 SQL 基础语法: DDL (Data Definition Language): 详细讲解 `CREATE DATABASE`, `CREATE SCHEMA`, `CREATE TABLE`, `ALTER TABLE`, `DROP TABLE`, `DROP DATABASE`, `CREATE INDEX` 等数据定义语句,演示如何创建和管理数据库对象。 DML (Data Manipulation Language): 深入讲解 `INSERT`, `UPDATE`, `DELETE`, `SELECT` 语句。重点讲解 `SELECT` 语句的强大功能,包括 `WHERE` 子句的条件过滤、`ORDER BY` 子句的排序、`GROUP BY` 子句的数据聚合、`HAVING` 子句的过滤聚合结果。 DCL (Data Control Language): 介绍 `GRANT`, `REVOKE` 语句,讲解如何管理用户权限。 TCL (Transaction Control Language): 讲解 `BEGIN`, `COMMIT`, `ROLLBACK` 语句,理解事务的概念及其重要性。 PostgreSQL 数据类型详解: 数值类型: 讲解 `SMALLINT`, `INTEGER`, `BIGINT`, `DECIMAL`, `NUMERIC`, `REAL`, `DOUBLE PRECISION`, `SERIAL`, `BIGSERIAL` 等,并说明其精度和范围。 字符串类型: 讲解 `CHAR`, `VARCHAR`, `TEXT`,以及 `BYTEA` (二进制字符串)。 日期/时间类型: 详细讲解 `DATE`, `TIME`, `TIMESTAMP`, `TIMESTAMPTZ`, `INTERVAL`,并演示如何进行日期和时间的计算与格式化。 布尔类型: 讲解 `BOOLEAN` 类型及其取值 `TRUE`, `FALSE`, `NULL`。 几何类型: 简要介绍 `POINT`, `LINE`, `LSEG`, `BOX`, `PATH`, `POLYGON`, `CIRCLE` 等地理信息系统(GIS)常用类型。 JSON/JSONB 类型: 重点讲解 PostgreSQL 对 JSON 数据的强大支持,包括 `JSON` 和 `JSONB` 类型的区别、常用操作符(如 `->`, `->>`, `>`, `>>`)以及 JSON 函数。 数组类型: 演示如何创建和操作数组类型的字段,以及相关的函数。 其他常用类型: 介绍 `UUID`, `MACADDR`, `INET` 等实用类型。 约束 (Constraints): 讲解 `PRIMARY KEY`, `FOREIGN KEY`, `UNIQUE`, `NOT NULL`, `CHECK` 等约束的定义和作用,以及如何通过约束保证数据的完整性和一致性。 第二部分: PostgreSQL 数据库设计与管理 在掌握了基础知识后,本部分将带领您深入数据库设计和日常管理层面,学习如何构建高效、健壮的数据库系统。 第三章: 数据库设计与规范 范式理论: 讲解数据库设计的基本原则,包括第一范式、第二范式、第三范式,以及 BCNF,理解如何通过范式化消除数据冗余和提高数据一致性。 ER 模型(实体-关系模型): 介绍 ER 图的绘制方法,如何识别实体、属性和关系,并将 ER 模型转化为关系型数据库的表结构。 表结构设计实践: 演示如何根据业务需求设计合理的表结构,选择合适的数据类型,设置主键、外键和索引,以及其他约束。 数据库规范化与反范式化: 探讨在不同场景下,如何权衡规范化带来的好处和反范式化可能带来的性能提升。 数据字典与元数据管理: 讲解数据字典的重要性,以及如何通过 `information_schema` 等系统目录视图来查询数据库元数据。 第四章: 索引与性能优化 索引是提高数据库查询性能的关键。本章将深入讲解 PostgreSQL 的索引机制,并提供一系列性能优化的策略。 索引的概念与作用: 阐述索引的原理,为何能加速查询,以及索引可能带来的写操作开销。 PostgreSQL 索引类型: B-tree 索引: 详细讲解最常用的 B-tree 索引,理解其结构和查找过程。 Hash 索引: 介绍 Hash 索引的特点及其适用场景。 GIN (Generalized Inverted Index) 索引: 重点讲解 GIN 索引,特别是在全文搜索和 JSONB 数据查询中的应用。 GiST (Generalized Search Tree) 索引: 介绍 GiST 索引,其在地理空间数据等复杂数据类型查询中的优势。 SP-GiST 索引: 简要介绍 SP-GiST 索引。 BRIN (Block Range Index) 索引: 介绍 BRIN 索引的特性。 创建、管理与使用索引: 演示 `CREATE INDEX`, `DROP INDEX`, `REINDEX` 等命令。讲解如何根据查询模式选择合适的索引类型和字段。 理解执行计划 (EXPLAIN): 重点讲解 `EXPLAIN` 和 `EXPLAIN ANALYZE` 命令,如何解读查询执行计划,识别性能瓶颈(如全表扫描、不合适的 join 策略等)。 查询优化技巧: 避免使用 `SELECT `: 强调只查询需要的字段。 合理使用 `WHERE` 子句: 确保 `WHERE` 子句中的条件能够被索引有效利用。 理解 JOIN 顺序与算法: 介绍 Nested Loop, Hash Join, Merge Join 等 Join 算法,以及 PostgreSQL 如何选择最优算法。 函数与索引: 讨论函数调用对索引使用可能造成的影响,以及如何通过函数索引解决这一问题。 子查询与 CTEs (Common Table Expressions): 演示如何使用子查询和 CTEs 优化复杂查询。 数据库统计信息: 讲解 `ANALYZE` 命令的作用,以及 PostgreSQL 如何利用统计信息进行查询优化。 Vacuum 操作: 解释 `VACUUM` 和 `VACUUM FULL` 的作用,理解 MVCC (Multi-Version Concurrency Control) 机制下的垃圾回收。 第五章: 视图、序列与同义词 本章将介绍 PostgreSQL 中用于简化数据访问和管理的几种重要对象。 视图 (Views): 讲解视图的概念,如何创建、修改和删除视图。演示视图在数据抽象、简化复杂查询、增强安全性等方面的应用。 序列 (Sequences): 介绍序列的用途,如何创建、修改和删除序列。演示序列在生成唯一标识符(如主键)中的应用,以及 `nextval()`, `currval()`, `setval()` 等函数的使用。 同义词 (Synonyms - PostgreSQL 中的 `ALIASES` 的概念): 介绍在 PostgreSQL 中,虽然没有直接的 `SYNONYM` 关键字,但可以通过 `CREATE VIEW` 或 schema 的方式实现类似功能,并讲解其应用场景。 第三部分: PostgreSQL 高级特性与应用 本部分将深入探讨 PostgreSQL 的高级功能,帮助您构建更强大、更灵活的数据库应用。 第六章: 函数、存储过程与触发器 函数 (Functions): SQL 函数: 演示如何使用 SQL 语言编写函数,以及如何创建、调用和管理 SQL 函数。 PL/pgSQL: 深入讲解 PostgreSQL 的过程语言 PL/pgSQL。讲解变量声明、控制流语句(`IF-THEN-ELSIF-ELSE`, `LOOP`, `WHILE`, `FOR`)、游标 (Cursors) 的使用。 其他过程语言: 简要介绍 PL/Python, PL/Perl, PL/Java 等其他过程语言的可能性。 存储过程 (Stored Procedures): 讲解存储过程的概念,以及 PL/pgSQL 如何实现存储过程的逻辑。 触发器 (Triggers): 详细介绍触发器的概念、类型(`BEFORE`, `AFTER`, `INSTEAD OF`)和事件(`INSERT`, `UPDATE`, `DELETE`)。演示如何创建触发器函数,并将其与表关联,实现自动化的数据处理和约束。 事务控制在函数和触发器中: 讲解如何在函数和触发器中管理事务。 第七章: 事务、并发与锁 理解 PostgreSQL 的事务和并发机制是保证数据一致性和系统稳定性的关键。 事务的 ACID 特性: 深入讲解原子性 (Atomicity)、一致性 (Consistency)、隔离性 (Isolation) 和持久性 (Durability) 的含义及 PostgreSQL 如何实现。 隔离级别 (Isolation Levels): 详细介绍 PostgreSQL 的隔离级别:`READ UNCOMMITTED`, `READ COMMITTED`, `REPEATABLE READ`, `SERIALIZABLE`,并解释它们在处理并发读写时可能出现的现象(如脏读、不可重复读、幻读)。 MVCC (Multi-Version Concurrency Control): 深入剖析 PostgreSQL 的 MVCC 实现机制,解释 `xmin` 和 `xmax` 的作用,以及 `VACUUM` 的重要性。 锁 (Locks): 锁的类型: 介绍共享锁 (Share Lock, S)、排他锁 (Exclusive Lock, X)、意向共享锁 (Intent Share Lock, IS)、意向排他锁 (Intent Exclusive Lock, IX) 等。 锁的粒度: 讲解行锁、页锁、表锁。 死锁 (Deadlocks): 解释死锁产生的原因,以及 PostgreSQL 如何检测和处理死锁。 `pg_locks` 视图: 演示如何使用 `pg_locks` 视图监控数据库的锁信息。 第八章: 复制与高可用性 本章将介绍 PostgreSQL 的复制机制,以及如何构建高可用性 (High Availability, HA) 的数据库解决方案。 复制基础概念: 介绍主从复制、流复制、逻辑复制等基本概念。 PostgreSQL 9.6 的复制方式: 流复制 (Streaming Replication): 详细讲解流复制的工作原理,包括 WAL (Write-Ahead Logging) 的发送和接收。演示如何配置主库和备库,实现同步复制和异步复制。 逻辑复制 (Logical Replication): 介绍逻辑复制的原理,以及其在实现跨版本复制、选择性数据复制等场景下的优势。 故障转移 (Failover) 与恢复 (Failback): 讨论实现自动故障转移的策略,并介绍手动故障转移和恢复的步骤。 高可用性解决方案: 简要介绍 Pacemaker, Patroni, pg_auto_failover 等第三方 HA 工具,以及它们如何与 PostgreSQL 结合使用。 第九章: 数据备份与恢复 可靠的数据备份与恢复是数据库管理的重要组成部分。 备份策略: 讨论不同的备份策略,如全量备份、增量备份、差异备份。 PostgreSQL 备份工具: `pg_dump`: 详细讲解 `pg_dump` 的用法,包括备份单个数据库、所有数据库、特定表,以及备份格式(纯文本、自定义格式、目录格式)。演示如何使用 `-Fc` (自定义格式) 结合 `pg_restore` 实现更灵活的恢复。 `pg_dumpall`: 介绍 `pg_dumpall` 用于备份全局对象(如角色、表空间)以及所有数据库。 物理备份: 介绍使用 `pg_basebackup` 进行基础备份,以及结合 WAL 归档实现时间点恢复 (Point-in-Time Recovery, PITR) 的原理和配置。 数据恢复: 演示如何使用 `pg_restore` 和 `psql` 进行不同格式备份的恢复。重点讲解如何使用 WAL 归档文件和基础备份进行 PITR。 备份的验证与测试: 强调定期验证备份的完整性和有效性,以及进行恢复演练的重要性。 第十章: 安全管理与用户权限 本章将详细讲解 PostgreSQL 的安全机制,以及如何进行用户管理和权限控制。 用户与角色管理: `CREATE USER`, `CREATE ROLE`, `ALTER USER`, `ALTER ROLE`, `DROP USER`, `DROP ROLE`: 演示如何创建、修改和删除用户和角色。 角色继承: 讲解角色之间的继承关系。 权限系统: `GRANT`, `REVOKE`: 详细讲解如何为用户或角色授予或撤销对数据库对象(表、视图、序列、函数等)的各种权限(如 `SELECT`, `INSERT`, `UPDATE`, `DELETE`, `TRUNCATE`, `REFERENCES`, `TRIGGER`, `ALL PRIVILEGES`)。 `pg_roles` 和 `pg_permissions` 视图: 演示如何查询用户和权限信息。 连接安全: `pg_hba.conf` 文件详解: 再次深入讲解 `pg_hba.conf` 的配置,包括连接类型、数据库、用户、地址、认证方法(`trust`, `reject`, `md5`, `scram-sha-256`, `cert` 等)。 SSL/TLS 加密: 演示如何配置 SSL/TLS 来加密客户端与服务器之间的通信,确保数据传输的安全性。 常用安全策略: 给出一些实用的安全加固建议,如使用强密码、最小权限原则、定期审计等。 第四部分: 进阶主题与实战案例 本部分将介绍一些 PostgreSQL 的进阶主题,并通过实战案例帮助读者将所学知识应用于实际开发中。 第十一章: 全文搜索 (Full Text Search, FTS) 全文搜索概念: 介绍全文搜索的原理,以及它与传统 SQL 搜索的区别。 PostgreSQL FTS 功能: 文本搜索配置 (Text Search Configuration): 讲解如何创建和管理文本搜索配置(包括词典、解析器、规则)。 文本搜索文档 (Text Search Document): 演示如何将文本数据转换为可搜索的文档。 文本搜索匹配操作符: 讲解 `@@` (match), `@@/` (match any), `@@=` (match all) 等操作符。 `tsvector` 和 `tsquery` 类型: 重点讲解 `tsvector`(用于存储文本搜索文档)和 `tsquery`(用于构建搜索查询)的用法。 GIN 索引在 FTS 中的应用: 演示如何为 `tsvector` 列创建 GIN 索引以获得高性能的搜索。 实战:构建一个简单的博客搜索功能。 第十二章: JSON/JSONB 高级应用 JSON/JSONB 数据操作函数: 深入讲解 `jsonb_each`, `jsonb_each_text`, `jsonb_array_elements`, `jsonb_object_keys`, `jsonb_extract_path` 等常用函数。 JSONB 索引策略: 演示如何为 JSONB 数据创建 GIN 索引,以及如何针对特定的 JSON 键值进行索引优化。 JSONB 与关系型数据的结合: 探讨在什么场景下可以使用 JSONB 来存储半结构化数据,以及如何将其与关系型数据进行查询。 实战:使用 JSONB 存储用户配置信息。 第十三章: GIS (地理信息系统) 支持 PostGIS 扩展: 介绍 PostGIS 扩展,以及如何安装和启用 PostGIS。 PostGIS 数据类型: 讲解 `GEOMETRY`, `GEOGRAPHY`, `RASTER` 等类型。 PostGIS 函数: 介绍常用的空间查询函数,如 `ST_Distance`, `ST_Intersects`, `ST_Contains`, `ST_Within`, `ST_Buffer` 等。 空间索引: 讲解 GiST 索引在空间查询中的重要性。 实战:基于地理位置数据进行附近商家搜索。 第十四章: 性能监控与故障排查 PostgreSQL 监控视图: 介绍常用的监控视图,如 `pg_stat_activity`, `pg_stat_database`, `pg_stat_statements`, `pg_backend_memory_contexts` 等。 日志文件分析: 讲解如何配置和分析 PostgreSQL 的日志文件,查找错误和警告信息。 常用故障排查场景: 慢查询分析与优化。 连接数过多导致的问题。 磁盘空间不足的排查。 死锁问题的诊断。 性能调优工具: 介绍 pgbench, pg_stat_statements 等工具的使用。 附录 PostgreSQL 9.6 常用命令速查表。 PostgreSQL 9.6 配置文件参数详解。 常见问题解答 (FAQ)。 通过本书的学习,您将能够自信地进行 PostgreSQL 9.6 数据库的安装、配置、设计、开发、管理和维护,并能深入理解其核心机制,为您的项目成功保驾护航。每一章都配有丰富的视频演示,让学习过程更加直观和高效。

用户评价

评分

对于我们这种非技术背景,但工作内容需要经常与数据报表打交道的项目经理来说,学习数据库简直是一场噩梦。我需要的不是成为一个DBA,而是能够快速掌握如何从生产库中提取特定格式的数据,并且能够看懂同事编写的复杂SQL语句中哪里出了性能问题。这套“从零开始”的视频,最适合我的就是它对SQL语言本身的覆盖度。它没有像大学教材那样枯燥地罗列所有标准SQL的语法,而是集中火力讲解了PostgreSQL特有的强大功能,比如窗口函数(Window Functions)和公用表表达式(CTE)。我记得有一集专门讲如何用`ROW_NUMBER()`和`LAG()`来计算用户连续登录天数,这个知识点我找了很久的文字资料都不得要领,但视频里老师用一个简单的客户交易流水案例,三分钟就把我彻底说通了。这种“急用”知识点的高效提炼,极大地提升了我的工作效率。我甚至能开始和开发团队进行更有效的技术沟通了。如果说有什么不足,可能对于纯粹的报表设计和数据可视化工具的对接部分可以再稍微提一下,但考虑到这是一套数据库基础教程,它的专注度已经值得称赞了。

评分

我对学习新技术的耐心度一直不高,很容易被晦涩难懂的术语劝退。所以,选择“视频教学版”就是希望能找到一个节奏慢、讲解清晰的资源。这套PostgreSQL 9.6的课程成功地吸引了我坚持学完了大部分内容,主要归功于其出色的项目实战环节。课程没有停留在孤立的知识点讲解上,而是从头到尾围绕一个模拟的电商数据库模型进行构建、设计、查询和维护。例如,在讲到事务(Transaction)和并发控制时,它没有空泛地谈论ACID特性,而是设计了一个“用户下单、库存扣减”的场景,用两个并发的终端同时操作,直观地展示了`SERIALIZABLE`隔离级别如何防止“幻读”的发生。这种将理论与实际业务场景紧密结合的教学模式,极大地增强了学习的代入感和实用性。唯一让我感到有点遗憾的是,由于是9.6版本的录制,有些界面元素和最新的客户端工具界面略有出入,但好在核心概念并未过时。总体来说,这是一套非常适合想要系统化掌握PostgreSQL基础操作和核心原理的学习资料。

评分

这套关于PostgreSQL 9.6的视频教程,确实是让我这个数据库小白找到了方向。我之前对数据库的概念只停留在听说过“SQL”的层面,更别提安装和配置PostgreSQL了。一开始面对官方文档那密密麻麻的英文,简直是望而却步。然而,这套视频课程的叙事方式非常接地气,讲师仿佛就在我身边手把手地教。从最基础的软件下载、环境准备开始,每一步骤都做了详尽的画面展示和清晰的语音讲解。我印象最深的是关于数据类型和基本约束的讲解部分,他不仅仅是罗列出有哪些类型,而是结合实际应用场景——比如用户年龄、商品价格、订单日期——来解释为什么选择`INTEGER`而不是`NUMERIC`,或者为什么主键(Primary Key)是不可或缺的。这种“知其然,更知其所以然”的教学方法,让我在搭建第一个本地数据库时充满了信心,而不是机械地复制粘贴命令。特别是在处理初次连接失败的常见错误时,视频中直接演示了如何通过配置文件检查端口和监听地址,这种实战经验的传授,比单纯看文字说明有效率高出百倍。如果说有什么可以更完美的地方,或许是在某些高级功能的介绍上可以再增加一些企业级部署的考虑,但这对于入门者来说,已是物超所值了。

评分

我是一名有着多年开发经验的后端工程师,主要使用ORM框架进行数据操作,对于底层SQL的优化和数据库的内部机制了解得比较皮毛。这次学习这套PostgreSQL 9.6的课程,主要目的是想深入理解查询计划(Execution Plan)是如何生成的,以及如何针对复杂的JOIN操作进行性能调优。这套教程在讲解查询优化器和索引原理的部分,可以说挖掘得相当深。讲师并没有停留在教你如何写`CREATE INDEX`这么简单,而是详细拆解了B-tree索引的结构、工作原理,并用直观的图示对比了顺序扫描和索引扫描的效率差异。我尤其欣赏它对VACUUM机制的讲解,这对于维护PostgreSQL的长期稳定运行至关重要,但很多初级资料都会略过。通过视频中的实时演示,我看到了当数据被删除后,表空间是如何被标记为可重用,以及手动执行`VACUUM FULL`和自动清理之间的区别。这套课程真正帮助我从一个“会用”数据库的开发者,转变为一个“理解”数据库的工程师。唯一的遗憾是,对于PostgreSQL 9.6版本之后引入的一些并行查询优化特性没有涉及到,但对于理解核心原理来说,这套内容已经打下了坚实的基础。

评分

我本身对数据库有基础认识,以前用过MySQL,这次转战PostgreSQL主要是看中了它在JSONB支持和高级数据类型上的优势,希望能够在处理半结构化数据时获得更好的性能和灵活性。因此,我最关注的是课程中关于JSONB数据类型的处理部分。这套9.6的教程在介绍JSONB操作符和函数时,展现了极高的专业水准。它不仅展示了如何使用`->`和`->>`来提取键值,还详细对比了使用JSONB字段进行查询和使用传统文本字段进行模糊匹配的性能差异,并通过`GIN`索引的创建和使用,演示了如何对JSONB文档内部的特定键进行高效索引,从而加速查询。这对于我们处理大量的日志数据和动态配置信息非常有指导意义。讲解中,老师还提到了PostgreSQL 9.6在JSONB处理上相对于老版本的一些改进,虽然版本略旧,但这些基础操作的逻辑是相通的。如果未来能有针对PostGIS等扩展模块的视频加入,那就更加完美了,但就核心数据库功能而言,其深度和广度都超出了我的预期。

评分

此用户未填写评价内容

评分

正版图书,一口气买了十几本,慢慢看!

评分

此用户未填写评价内容

评分

新买的书,看起来不错,需要慢慢看了

评分

通俗易懂

评分

学习学习,努力学习

评分

学习学习,努力学习

评分

通俗易懂

评分

新买的书,看起来不错,需要慢慢看了

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有