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

PostgreSQL 11从入门到精通(视频教学版) PDF下载

编辑推荐

本书全面介绍PostgreSQL 11的安装与配置、库表的操作、数据类型和运算符、函数、数据的操作、索引、视图、触发器、事务和并发控制、用户管理、备份与还原、性能优化、高可用、负载均衡、数据复制、服务器配置与数据库监控、数据库内部结构等内容。

内容简介

本书共分18章,内容主要包括PostgreSQL 11的安装与配置、数据库的基本操作、表的基本操作、数据类型和运算符、函数、数据的操作、索引、视图、触发器、事务和并发控制、用户管理、备份与还原、性能优化、高可用、负载均衡、数据复制、服务器配置与数据库监控、数据库内部结构等内容。本书注重实战操作,帮助读者循序渐进地掌握PostgreSQL 11中的各项管理技术。 本书共有400多个实例,还有大量的经典习题。随书赠送了近20小时培训班形式的视频教学录像,详细讲解了书中每一个知识点和每一个数据库操作的方法和技巧,同时还提供了本书所有例子的源代码,读者可以直接查看和调用。 本书适合PostgreSQL数据库初学者、PostgreSQL数据库开发人员和PostgreSQL数据库管理员,同时也能作为高等院校和培训学校相关专业师生的教学用书。

作者简介

李小威,软件开发项目经理,在软件开发有多年的开发经验,尤其擅长Java、PHP、MySQL数据库、大数据分析等,具有很强的实战经验。对多种数据库系统有深入研究,在数据库管理与开发方面有着丰富的经验。并已出版过多本相关畅销书,颇受广大读者认可。

PostgreSQL 11从入门到精通(视频教学版) 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  什么是开源... 3

1.2  数据库技术构成... 3

1.2.1  数据库系统... 3

1.2.2  SQL语言... 3

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 11的安装与配置... 9

2.1  安装与启动PostgreSQL 11.2. 9

2.1.1  下载PostgreSQL 11.2安装包... 9

2.1.2  安装PostgreSQL 11.2. 11

2.1.3  启动PostgreSQL服务器... 16

2.2  pgAdmin 4的基本操作... 18

2.2.1  pgAdmin 4的启动与连接... 18

2.2.2  pgAdmin 4的界面简介... 19

2.2.3  配置PostgreSQL服务器的属性... 25

2.2.4  执行SQL查询语句... 26

2.3  使用psql工具登录PostgreSQL数据库... 27

2.4  Linux系统下安装PostgreSQL 11. 28

2.5  常见问题及解答... 29

疑问1:连接pgAdmin时提示“服务器未监听”的错误怎么办?... 29

疑问2:如何修改服务器登录密码?... 29

2.6  本章小结... 30

2.7  经典习题... 30

第3章  数据库的基本操作... 31

3.1  创建数据库... 31

3.1.1  使用对象浏览器创建数据库... 31

3.1.2  使用SQL创建数据库... 34

3.2  修改数据库的属性... 35

3.2.1  使用对象浏览器修改数据库的属性... 35

3.2.2  使用SQL语句修改数据库属性... 36

3.3  删除数据库... 37

3.3.1  使用对象浏览器删除数据库... 37

3.3.2  使用SQL语句删除数据库... 38

3.4  综合案例——数据库的创建和删除... 39

3.5  常见问题及解答... 40

疑问1:如何使用SQL语句创建具有一定条件的数据库?... 40

疑问2:使用DROP语句要注意什么问题?... 40

3.6  经典习题... 41

第4章  数据表的基本操作... 42

4.1  创建数据表... 42

4.1.1  创建数据表... 42

4.1.2  使用主键约束... 47

4.1.3  使用外键约束... 48

4.1.4  使用非空约束... 51

4.1.5  使用唯一性约束... 51

4.1.6  使用默认约束... 53

4.2  修改数据表... 53

4.2.1  修改表名... 53

4.2.2  修改字段的数据类型... 54

4.2.3  修改字段名... 55

4.2.4  添加字段... 56

4.2.5  删除字段... 58

4.2.6  删除表的外键约束... 58

4.3  删除数据表... 60

4.3.1  删除没有被关联的表... 60

4.3.2  删除被其他表关联的主表... 61

4.4  PostgreSQL 11的新特性——新增带默认值的字段不再重写数据表... 63

4.5  综合案例——数据表的基本操作... 64

4.6  常见问题及解答... 71

疑问1:表删除和修改操作时需注意什么问题?... 71

疑问2:每一个表中都要有一个主键吗?... 71

4.7  经典习题... 71

第5章  数据类型和运算符... 73

5.1  PostgreSQL数据类型介绍... 73

5.1.1  整数类型... 73

5.1.2  浮点数类型... 74

5.1.3  任意精度类型... 75

5.1.4  日期与时间类型... 75

5.1.5  字符串类型... 82

5.1.6  二进制类型... 84

5.1.7  布尔类型... 85

5.1.8  数组类型... 85

5.2  如何选择数据类型... 86

5.3  常见运算符介绍... 87

5.3.1  运算符概述... 87

5.3.2  算术运算符... 88

5.3.3  比较运算符... 90

5.3.4  逻辑运算符... 97

5.3.5  运算符的优先级... 99

5.4  综合案例——运算符的使用... 100

5.5  常见问题及解答... 102

疑问1:PostgreSQL中可以存储文件吗?... 102

疑问2:二进制和普通字符串的区别是什么?... 102

5.6  经典习题... 102

第6章  PostgreSQL函数... 103

6.1  PostgreSQL函数简介... 103

6.2  数学函数... 103

6.2.1  绝对值函数ABS(x)和返回圆周率的函数PI() 104

6.2.2  平方根函数SQRT(x)和求余函数MOD(x,y) 104

6.2.3  获取整数的函数CEIL(x)、CEILING(x)和FLOOR(x) 105

6.2.4  四舍五入函数ROUND(x)和ROUND(x,y) 106

6.2.5  符号函数SIGN(x) 107

6.2.6  幂运算函数POW(x,y)、POWER(x,y)和EXP(x) 108

6.2.7  对数运算函数LOG(x) 109

6.2.8  角度与弧度相互转换的函数RADIANS(x)和DEGREES(x) 109

6.2.9  正弦函数SIN(x)和反正弦函数ASIN(x) 110

6.2.10  余弦函数COS(x)和反余弦函数ACOS(x) 111

6.2.11  正切函数、反正切函数和余切函数... 112

6.3  字符串函数... 113

6.3.1  计算字符串字符数的函数和字符串长度的函数... 113

6.3.2  合并字符串函数CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…) 114

6.3.3  获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n) 115

6.3.4  填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2) 116

6.3.5  删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s) 117

6.3.6  删除指定字符串的函数TRIM(s1 FROM s) 119

6.3.7  重复生成字符串的函数REPEAT(s,n) 119

6.3.8  替换函数REPLACE(s,s1,s2) 120

6.3.9  获取子串的函数SUBSTRING(s,n,len) 120

6.3.10  匹配子串开始位置的函数POSITION(str1 IN str) 121

6.3.11  字符串逆序的函数REVERSE(s) 121

6.4  日期和时间函数... 122

6.4.1  获取当前日期的函数和获取当前时间的函数... 122

6.4.2  获取当前日期和时间的函数... 123

6.4.3  获取日期的指定值的函数EXTRACT(type FROM d) 124

6.4.4  日期和时间的运算操作... 126

6.5  条件判断函数... 129

6.6  系统信息函数... 130

6.6.1  获取PostgreSQL版本号... 130

6.6.2  获取用户名的函数... 131

6.7  加密函数... 131

6.7.1  加密函数MD5(str) 131

6.7.2  加密函数ENCODE(str,pswd_str) 132

6.7.3  解密函数DECODE(crypt_str,pswd_str) 132

6.8  改变数据类型的函数... 133

6.9  综合案例——PostgreSQL函数的使用... 133

6.10  常见问题及解答... 137

疑问1:如何从日期时间值中获取年、月、日等部分日期或时间值?... 137

疑问2:如何计算年龄?... 137

6.11  经典习题... 137

第7章  插入、更新与删除数据... 139

7.1  插入数据... 139

7.1.1  为表的所有字段插入数据... 139

7.1.2  为表的指定字段插入数据... 142

7.1.3  同时插入多条记录... 143

7.1.4  将查询结果插入到表中... 145

7.2  更新数据... 147

7.3  删除数据... 149

7.4  综合案例——记录的插入、更新和删除... 152

7.5  常见问题及解答... 158

疑问1:插入记录时可以不指定字段名称吗?... 158

疑问2:更新或者删除表时必须指定WHERE子句吗?... 158

7.6  经典习题... 158

第8章  查询数据... 160

8.1  基本查询语句... 160

8.2  单表查询... 162

8.2.1  查询所有字段... 163

8.2.2  查询指定字段... 164

8.2.3  查询指定记录... 166

8.2.4  带IN关键字的查询... 168

8.2.5  带BETWEEN AND的范围查询... 170

8.2.6  带LIKE的字符匹配查询... 171

8.2.7  查询空值... 172

8.2.8  带AND的多条件查询... 174

8.2.9  带OR的多条件查询... 175

8.2.10  查询结果不重复... 176

8.2.11  对查询结果排序... 177

8.2.12  分组查询... 180

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

8.3  使用集合函数查询... 184

8.3.1  COUNT()函数... 184

8.3.2  SUM()函数... 186

8.3.3  AVG()函数... 187

8.3.4  MAX()函数... 188

8.3.5  MIN()函数... 190

8.4  连接查询... 191

8.4.1  内连接查询... 191

8.4.2  外连接查询... 194

8.4.3  复合条件连接查询... 196

8.5  子查询... 198

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

8.5.2  带ALL关键字的子查询... 199

8.5.3  带EXISTS关键字的子查询... 199

8.5.4  带IN关键字的子查询... 201

8.5.5  带比较运算符的子查询... 203

8.6  合并查询结果... 205

8.7  为表和字段取别名... 208

8.7.1  为表取别名... 208

8.7.2  为字段取别名... 210

8.8  使用正则表达式查询... 212

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

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

8.8.3  用符号"."来替代字符串中的任意一个字符... 214

8.8.4  使用"*"和" "来匹配多个字符... 215

8.8.5  匹配指定字符串... 216

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

8.8.7  匹配指定字符以外的字符... 218

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

8.9  PostgreSQL 11新特性——psql新增gdesc选项... 220

8.10  综合案例——数据表查询操作... 220

8.11  常见问题及解答... 228

疑问1:DISTINCT可以应用于所有的列吗?... 228

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

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

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

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

8.12  经典习题... 229

第9章  索引... 230

9.1  索引简介... 230

9.1.1  索引的含义和特点... 230

9.1.2  索引的分类... 231

9.1.3  索引的设计原则... 232

9.2  创建索引... 232

9.2.1  使用pgAdmin创建索引... 232

9.2.2  使用SQL语句创建索引... 233

9.3  重命名索引... 236

9.4  删除索引... 237

9.5  PostgreSQL 11的新特性1 ——创建索引时支持INCLUDE方式... 238

9.6  PostgreSQL 11的新特性2——执行并行创建索引... 239

9.7  综合案例——创建索引... 240

9.8  常见问题及解答... 242

疑问1:索引对数据库性能如此重要,应该如何使用它?... 242

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

9.9  经典习题... 242

第10章  视图... 244

10.1  视图概述... 244

10.1.1  视图的含义... 244

10.1.2  视图的作用... 245

10.2  创建视图... 246

10.2.1  创建视图的语法形式... 246

10.2.2  在单表上创建视图... 246

10.2.3  在多表上创建视图... 248

10.3  查看视图... 248

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

10.3.2  在views表中查看视图详细信息... 249

10.4  删除视图... 250

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

10.4.2  使用SQL语句删除视图... 251

10.5  综合案例——视图应用... 252

10.6  常见问题及解答... 257

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

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

10.7  经典习题... 257

第11章  触发器... 258

11.1  什么是触发器和触发器函数... 258

11.2  创建触发器... 259

11.3  查看和修改触发器... 260

11.4  触发器的使用... 261

11.5  删除触发器... 262

11.6  综合案例——触发器使用... 263

11.7  常见问题及解答... 266

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

疑问2:为什么要及时删除不再需要的触发器... 267

11.8  经典习题... 267

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

12.1  事务管理简介... 268

12.1.1  事务的含义... 268

12.1.2  事务的属性... 269

12.1.3  事务块管理的常用语句... 269

12.1.4  事务的应用案例... 270

12.2  PostgreSQL的并发控制... 271

12.3  锁机制... 273

12.3.1  锁的类型... 273

12.3.2  死锁... 274

12.4  锁的应用案例... 275

12.5  PostgreSQL 11的新特性——支持存储过程... 276

12.6  常见问题及解答... 279

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

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

12.7  经典习题... 279

第13章  PostgreSQL用户管理... 280

13.1  组角色管理... 280

13.1.1  创建组角色... 280

13.1.2  查看和修改组角色... 282

13.1.3  删除组角色... 284

13.2  角色的各种权限... 286

13.3  账户管理... 287

13.3.1  创建用户... 287

13.3.2  删除用户... 290

13.3.3  修改用户密码... 291

13.4  组角色和用户权限管理... 292

13.4.1  对组角色授权... 292

13.4.2  对用户授权... 293

13.4.3  收回组角色权限... 294

13.4.4  收回用户权限... 294

13.5  数据库权限管理... 295

13.5.1  修改数据库的拥有者... 295

13.5.2  增加用户的数据表权限... 297

13.6  PostgreSQL 11的新特性1——新增3个默认角色... 298

13.7  PostgreSQL 11的新特性2——下放4个系统函数... 299

13.8  综合案例——综合管理用户权限... 300

13.9  常见问题及解答... 302

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

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

疑问3:为什么要谨慎使用超级用户权限?... 302

13.10  经典习题... 302

 

第14章  数据备份与还原... 304

14.1  数据备份... 304

14.1.1  使用pgAdmin 4备份数据库... 304

14.1.2  使用pg_dump工具备份数据库... 306

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

14.2  数据还原... 310

14.2.1  使用pgAdmin 4还原数据库... 310

14.2.2  使用psql还原数据库... 311

14.2.3  使用pg_restore快速还原数据库... 313

14.3  数据库迁移... 314

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

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

14.3.3  不同数据库之间迁移... 314

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

14.5  常见问题及解答... 315

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

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

14.6  经典习题... 316

第15章  性能优化... 317

15.1  优化简介... 317

15.2  优化查询... 317

15.2.1  分析查询语句EXPLAIN.. 318

15.2.2  索引对查询速度的影响... 318

15.2.3  优化子查询... 319

15.3  优化数据库结构... 320

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

15.3.2  增加中间表... 321

15.3.3  增加冗余字段... 322

15.3.4  优化插入记录的速度... 323

15.3.5  分析表的统计信息... 323

15.4  优化PostgreSQL服务器... 324

15.4.1  优化服务器硬件... 324

15.4.2  优化PostgreSQL的参数... 325

15.5  PostgreSQL 11的新特性1——新增5个记录错误的变量... 325

15.6  PostgreSQL 11的新特性2——增加对JIT编译的支持... 326

15.7  PostgreSQL 11的新特性3——支持并行哈希连接... 328

15.8  综合案例——优化PostgreSQL服务器... 331

15.9  常见问题及解答... 332

疑问1:是不是索引建立的越多越好?... 332

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

15.10  经典习题... 332

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

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

16.2  日志传送备用服务器... 334

16.2.1  日志传送概述... 334

16.2.2  设置备用服务器... 335

16.3  数据的流复制... 336

16.3.1  流复制概述... 336

16.3.2  身份验证... 337

16.4  数据的同步复制... 337

16.4.1  同步复制概述... 338

16.4.2  同步复制的应用案例... 338

16.5  PostgreSQL 11的新特性1——分区表增加哈希分区... 342

16.6  PostgreSQL 11的新特性2——分区表支持创建主键和索引... 344

16.7  PostgreSQL 11的新特性3——分区表支持UPDATE分区键... 346

16.8  常见问题及解答... 347

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

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

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

17.1  服务器配置... 349

17.1.1  服务器配置的文件... 349

17.1.2  连接与认证... 351

17.1.3  资源消耗... 353

17.1.4  预写式日志... 355

17.1.5  查询规划... 355

17.1.6  错误报告和日志... 356

17.1.7  运行时统计... 358

17.1.8  自动清理... 358

17.1.9  客户端连接默认... 359

17.1.10  锁管理... 360

17.1.11  版本和平台兼容性... 360

17.2  监控数据库的活动... 360

17.2.1  配置统计收集器... 361

17.2.2  查看收集到的统计信息... 361

17.3  监控磁盘的使用... 364

17.3.1  监控磁盘的使用量... 364

17.3.2  磁盘满导致的失效... 366

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

17.5  常见问题及解答... 368

疑问1:当服务器配置出现冲突时,采用什么方式的优先级?... 368

疑问2:为什么有时候磁盘没有写满性能仍然很低?... 369

第18章  内部结构... 370

18.1  PostgreSQL的内部概述... 370

18.1.1  查询经过的路径... 370

18.1.2  如何建立连接... 371

18.1.3  分析器阶段... 372

18.1.4  PostgreSQL规则系统... 372

18.1.5  规划器/优化器... 373

18.1.6  执行器... 374

18.2  PostgreSQL的内部系统表... 375

18.2.1  数据表... 375

18.2.2  系统视图... 380

18.3  PostgreSQL的内部前端/后端协议... 385

18.3.1  概述... 385

18.3.2  消息流... 385

18.3.3  消息数据类型... 390

18.3.4  消息格式... 390

18.3.5  错误和通知消息字段... 398

18.4  PostgreSQL的编码约定... 399

18.4.1  格式... 399

18.4.2  报告服务器里的错误... 399

18.4.3  错误消息风格指南... 401

18.5  基因查询优化器... 404

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

18.5.2  基因算法... 404

18.5.3  PostgreSQL里的基因查询优化(GEQO)... 405

18.6  索引访问方法接口定义... 406

18.6.1  索引的系统表记录... 406

18.6.2  索引访问方法函数... 407

18.6.3  索引扫描... 410

18.6.4  索引唯一性检查... 411

18.6.5  索引开销估计函数... 412

18.7  GiST索引... 413

18.7.1  GiST简介... 413

18.7.2  GiST的可扩展性... 414

18.7.3  实现方法... 414

18.8  数据库物理存储... 415

18.8.1  数据库文件布局... 415

18.8.2  TOAST. 416

18.8.3  数据库分页文件... 417

18.9  BKI后端接口... 420

18.9.1  BKI文件格式... 420

18.9.2  BKI命令... 420

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

18.9.4  例子... 422

18.10  常见问题及解答... 422

疑问1:什么是GIN索引?... 422

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

 

PostgreSQL 11从入门到精通(视频教学版) pdf下载声明

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

pdf下载地址

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

链接地址:PostgreSQL 11从入门到精通(视频教学版)