欢迎光临
免费的PDF电子书下载网站

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

编辑推荐

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的数据库系统管理与开发的人员阅读。

作者简介

暂无

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

目录

目 ; ; ; 录

第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  安装与启动PostgreSQL9.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

第8章  查询数据          132

8.1  基本查询语句        132

8.2  单表查询        134

8.2.1 查询所有字段    134

8.2.2 查询指定字段    135

8.2.3 查询指定记录    137

8.2.4 带IN关键字的查询   138

8.2.5 带BETWEEN AND的范围查询  139

8.2.6 带LIKE的字符匹配查询    140

8.2.7 空值查询    141

8.2.8 带AND的多条件查询        142

8.2.9 带OR的多条件查询 143

8.2.10 查询结果不重复       144

8.2.11 对查询结果排序       145

8.2.12 分组查询  147

8.2.13 用LIMIT限制查询结果的数量        149

8.3  使用集合函数查询        150

8.3.1 COUNT()函数      150

8.3.2 SUM()函数  152

8.3.3 AVG()函数   153

8.3.4 MAX()函数  154

8.3.5 MIN()函数   155

 

 

8.4  连接查询        156

8.4.1 内连接查询         156

8.4.2 外连接查询         158

8.4.3 复合条件连接查询    160

8.5  子查询   161

8.5.1 带ANY、SOME关键字的子查询      161

8.5.2 带ALL关键字的子查询     161

8.5.3 带EXISTS关键字的子查询         162

8.5.4 带IN关键字的子查询       164

8.5.5 带比较运算符的子查询    165

8.6  合并查询结果        166

8.7  为表和字段取别名        168

8.7.1 为表取别名         168

8.7.2 为字段取别名    170

8.8  使用正则表达式查询   171

8.8.1 查询以特定字符或字符串开头的记录    172

8.8.2 查询以特定字符或字符串结尾的记录    173

8.8.3 用“.”符号替代字符串中的任意一个字符   173

8.8.4 使用“*”和“ ”匹配多个字符    174

8.8.5 匹配指定字符串         174

8.8.6 匹配指定字符中的任意一个    175

8.8.7 匹配指定字符以外的字符         176

8.8.8 使用{M}或者{M,N}指定字符串连续出现的次数     176

8.9  综合案例——数据表查询操作   177

8.10 常见问题及解答 183

疑问1:DISTINCT可以应用于所有列吗? 183

疑问2:ORDER BY可以和LIMIT混合使用吗?          183

疑问3:什么时候使用单引号? 183

疑问4:在WHERE子句中必须使用圆括号吗?        183

疑问5:为什么通配符格式正确却没有查找出符合条件的记录? 183

8.11 经典习题      184

第9章  索引          185

9.1  索引简介        185

9.1.1 索引的含义和特点    185

9.1.2 索引的分类         186

9.1.3 索引的设计原则         187

9.2  创建索引        187

9.2.1 使用pgAdmin创建索引    187

9.2.2 使用SQL语句创建索引     188

9.3  重命名索引   191

9.4  删除索引        192

9.5  综合案例——创建索引        193

9.6  常见问题及解答   195

疑问1:应该如何正确使用索引?      195

疑问2:为什么尽量使用短索引?      195

9.7  经典习题        195

第10章  视图       197

10.1 视图概述      197

10.1.1 视图的含义       197

10.1.2 视图的作用       198

10.2 创建视图      198

10.2.1 创建视图的语法形式       199

10.2.2 在单表上创建视图  199

10.2.3 在多表上创建视图  200

10.3 查看视图      201

10.3.1 使用pgAdmin图形化工具查看视图       201

10.3.2 使用SQL语句在views表中查看视图详细信息    202

10.4 删除视图      203

10.4.1 使用pgAdmin图形化工具删除视图       203

10.4.2 使用SQL语句删除视图  203

10.5 综合案例——视图应用      204

10.6 常见问题及解答 208

疑问1:PostgreSQL中视图和表的区别以及联系是什么?       208

疑问2:如何修改视图的属性? 208

10.7 经典习题      209

第11章  触发器   210

11.1 什么是触发器和触发器函数      210

11.2 创建触发器 211

11.3 查看和修改触发器      212

11.4 使用触发器 213

11.5 删除触发器 214

11.6 综合案例——触发器的使用      215

 

 

11.7 常见问题及解答 217

疑问1:使用触发器时应注意什么问题? 217

疑问2:为什么要及时删除不需要的触发器? 218

11.8 经典习题      218

第12章  事务处理与并发控制   219

12.1 事务管理简介      219

12.1.1 事务的含义       219

12.1.2 事务的属性       220

12.1.3 事务块管理的常用语句  220

12.1.4 事务的应用案例       221

12.2 PostgreSQL的并发控制      222

12.3 锁机制 223

12.3.1 锁的类型  224

12.3.2 死锁  225

12.3.3 锁的应用案例  226

12.4 常见问题及解答 227

疑问1:事务和锁在应用上的区别是什么?      227

疑问2:事务和锁有什么关系? 227

12.5 经典习题      227

第13章  PostgreSQL用户管理   228

13.1 组角色管理 228

13.1.1 创建组角色       228

13.1.2 查看和修改组角色  230

13.1.3 删除组角色       231

13.2 角色的各种权限 232

13.3  账户管理      234

13.3.1 创建用户  234

13.3.2 删除用户  236

13.3.3 修改用户密码  237

13.4 组角色和用户权限管理      238

13.4.1 对组角色授权  238

13.4.2 对用户授权       239

13.4.3 收回组角色权限       239

13.4.4 收回用户权限  240

13.5 数据库权限管理 240

13.5.1 修改数据库的拥有者       240

13.5.2 增加用户的数据表权限  241

13.6 综合案例——综合管理用户权限      243

13.7 常见问题及解答 244

疑问1:如何撤销用户对数据表的操作权限? 244

疑问2:组角色和登录角色之间的区别是什么?      244

疑问3:如何使用超级用户权限?      245

13.8 经典习题      245

第14章  数据备份与还原   246

14.1 数据备份      246

14.1.1 使用pgAdmin 4备份数据库   246

14.1.2 使用pg_dump工具备份数据库      248

14.1.3 使用pg_dumpall工具备份整个服务器的数据库 250

14.2 数据还原      251

14.2.1 使用pgAdmin 4还原数据库   251

14.2.2 使用psql还原数据库      252

14.2.3 使用pg_restore快速还原数据库  254

14.3 数据库迁移 255

14.3.1 相同版本的PostgreSQL数据库之间的迁移  255

14.3.2 不同版本的PostgreSQL数据库之间的迁移  255

14.3.3 不同类型数据库之间的迁移  255

14.4 综合案例——数据的备份与恢复      256

14.5 常见问题及解答 256

疑问1:pgdump备份的文件只能在PostgreSQL中使用吗?   256

疑问2:使用pgAdmin恢复数据库时需要注意什么问题?      256

14.6 经典习题      257

第15章  性能优化       258

15.1 优化简介      258

15.2 优化查询      258

15.2.1 分析查询语句EXPLAIN    258

15.2.2 索引对查询速度的影响  259

15.2.3 优化子查询       260

15.3 优化数据库结构 261

15.3.1 将字段很多的表分解成多个表       261

15.3.2 增加中间表       262

15.3.3 增加冗余字段  263

15.3.4 优化插入记录的速度       263

15.3.5 分析表的统计信息  264

15.4 优化PostgreSQL服务器     265

15.4.1 优化服务器硬件       265

15.4.2 优化PostgreSQL的参数  265

15.5 综合案例——优化PostgreSQL服务器     266

15.6 常见问题及解答 267

疑问1:是不是索引建立得越多越好?      267

疑问2:如何更新缓冲区的缓冲?      267

15.7 经典习题      267

第16章  高可用、负载均衡和数据复制   268

16.1 常见的数据同步解决方案 268

16.2 日志传送备用服务器 269

16.2.1 日志传送概述  269

16.2.2 设置备用服务器       270

16.3 数据的流复制      271

16.3.1 流复制概述       271

16.3.2 身份验证  272

16.4 数据的同步复制 272

16.4.1 同步复制概述  272

16.4.2 同步复制的应用案例       273

16.5 常见问题及解答 277

疑问1:如何监控系统中锁的情况? 277

疑问2:什么是数据分区? 277

第17章  服务器配置与数据库监控   278

17.1 服务器配置 278

17.1.1 服务器配置的文件  278

17.1.2 连接与认证       280

17.1.3 资源消耗  281

17.1.4 预写式日志       283

17.1.5 查询规划  284

17.1.6 错误报告和日志       285

17.1.7 运行时统计       286

17.1.8 自动清理  287

17.1.9 客户端连接配置       287

17.1.10 锁管理    288

17.1.11 版本和平台兼容性         289

17.2 监控数据库的活动      289

17.2.1 配置统计收集器       289

17.2.2 查看收集到的统计信息  290

17.3 监控磁盘的使用 293

17.3.1 监控磁盘的使用量  293

17.3.2 磁盘满导致的失效  295

17.4 综合实战——查看监控磁盘的使用情况 295

17.5 常见问题及解答 297

疑问1:当服务器配置出现冲突时采用什么优先级?      297

疑问2:为什么有时磁盘没有写满性能却很差?      297

第18章  内部结构       298

18.1 PostgreSQL的内部概述      298

18.1.1 查询经过的路径       298

18.1.2 建立连接  299

18.1.3 分析器阶段       300

18.1.4 PostgreSQL规则系统       300

18.1.5 规划器/优化器          301

18.1.6 执行器       302

18.2 PostgreSQL的内部系统表  303

18.2.1 数据表       303

18.2.2 系统视图  308

18.3 PostgreSQL的内部前端/后端协议     312

18.3.1 概述  312

18.3.2 消息流       312

18.3.3 消息数据类型  317

18.3.4 消息格式  317

18.3.5 错误和通知消息字段       326

18.4 PostgreSQL的编码约定      326

18.4.1 格式  326

18.4.2 报告服务器里的错误       327

18.4.3 错误消息风格指南  328

18.5 基因查询优化器 331

18.5.1 作为复杂优化问题的查询处理       331

18.5.2 基因算法  331

18.5.3 PostgreSQL里的基因查询优化       332

18.6 索引访问方法接口定义      333

18.6.1 索引的系统表记录  333

18.6.2 索引访问方法函数  334

18.6.3 索引扫描  337

18.6.4 索引唯一性检查       338

18.6.5 索引开销估计函数  339

18.7 GiST索引      340

18.7.1 GiST简介  340

18.7.2 可扩展性  340

18.7.3 实现方法  341

18.8 数据库物理存储 341

18.8.1 数据库文件布局       341

18.8.2 TOAST        342

18.8.3 数据库分页文件       344

18.9 BKI后端接口        346

18.9.1 BKI文件格式    346

18.9.2 BKI命令    346

18.9.3 系统初始化的BKI文件结构   347

18.9.4 例子  348

18.10 常见问题及解答        348

疑问1:什么是GIN索引? 348

疑问2:使用索引锁需要注意什么? 348

前沿

前    言

 

 

本书是面向PostgreSQL 9.6初学者的一本高质量的书籍,通过详细的实用案例,让读者快速入门,再也不会为数据库而发愁。

本书特色

知识丰富全面:知识点由浅入深,几乎涵盖所有PostgreSQL 9.6的基础知识点和开发技术。

图文并茂:注重操作,图文并茂,在介绍案例的过程中,每一个操作均有对应步骤和过程说明。这种结合的方式使读者在学习过程中能够直观、清晰地看到操作的过程以及效果,便于更快地理解和掌握。

易学易用:颠覆传统“看”书的观念,变成一本能“操作”的图书。

案例丰富:把知识点融汇于系统的案例实训中,并且结合综合案例进行讲解和拓展,进而达到“知其然,并知其所以然”的效果。

提示技巧、贴心周到:本书对读者在学习过程中可能会遇到的疑难问题以“提示”和“技巧”的形式进行说明,以免读者在学习的过程中走弯路。

超值资源:本书400多个详细示例和大量经典习题,让你在实战应用中掌握PostgreSQL 9.6的每一项技能。

读者对象

本书是一本完整介绍PostgreSQL 9.6的教程,内容丰富,条理清晰,实用性强,适合以下读者学习使用:

?       对PostgreSQL9.6完全不了解或者有一定了解的读者。

?       对数据库有兴趣的读者,并希望快速、全面地掌握PostgreSQL 9.6。

?       对没有任何PostgreSQL9.6经验、想学习PostgreSQL 9.6并进行应用开发的读者。

代码、课件与教学视频

本书代码、课件与教学视频下载地址(注意数字与英文字母大小写)如下:

链接:https://pan.baidu.com/s/1smGqicd    密码:mjri

如果下载有问题或者有其他关于本书的问题,请联系电子邮箱booksaga@163.com,邮件主题为“PostgreSQL 9.6从零开始学”。

鸣谢

除了本书署名编者李小威(长期从事PostgreSQL实训的培训工作)外,参与本书编写的人员还有包惠利、张工厂、陈伟光、胡同夫、梁云亮、刘海松、刘玉萍、刘增产、孙若淞、王攀登、王维维、王英英、肖品和李园等人。虽然倾注了编者的努力,但由于水平有限,书中难免有疏漏之处,请读者谅解,如果遇到问题或有意见,敬请与我们联系,我们将全力提供帮助。

 

 

 

编  者  

2018年2月

PostgreSQL 9.6从零开始学(视频教学版) pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:PostgreSQL 9.6从零开始学(视频教学版)