ITPub博客

首页 > 数据库 > 数据库开发技术 > 《PostgreSQL 开发指南》电子版PDF免费下载

《PostgreSQL 开发指南》电子版PDF免费下载

原创 数据库开发技术 作者:BUAA_dxy 时间:2022-04-18 19:00:00 0 删除 编辑

为了方便大家阅读学习,制作了《PostgreSQL 开发指南》专栏的电子版PDF,免费开放下载:https://github.com/dongxuyang1985/postgresql_dev_guide

 

本书主要面向PostgreSQL初级DBA和开发人员,内容包括:PostgreSQL介绍和安装,用户和角色、数据库与模式的管理、表空间与表的维护、数据库的备份与恢复、SQL查询、常用函数、DML语句,以及一些高级功能,例如通用表表达式、窗口函数、数据库事务、索引优化、视图、存储过程/函数、触发器以及Java、Python、PHP应用程序编程接口等。


第I部分基本概念


第1章 PostgreSQL简介和安装。简单介绍PostgreSQL的功能特性和相关信息,以及PostgreSQL在不同操作系统上的安装方法。


第2章角色与用户。PostgreSQL使用角色的概念来管理数据库的访问权限。角色可以被看成是一个数据库用户或者是一个组。GRAN和REVOKE语句分别用于对象的授权和撤销权限。


第3章数据库与模式。一个PostgreSQL实例管理一个数据库集群,一个集群可以包含一个或多个数据库(Database),一个数据库包含一个或多个模式(Schema),模式就像是一个命名空间,其中包含了许多数据库对象,例如表、索引等。


第4章管理数据表。介绍如何管理数据库中的表,包括创建表、修改表以及删除表等操作。


第5章管理表空间。在PostgreSQL中,表空间(Tablespace)表示数据文件的存放目录。这些数据文件代表了数据库的对象,例如表或索引。


第6章备份与恢复。服务器系统错误、硬件故障或者人为失误都可能导致数据的丢失或损坏。因此,备份和恢复对于数据库的高可用性至关重要。数据库管理员应该根据业务的需求制定合适的备份策略,并提前演练各种故障情况下的恢复过程,做到有备无患。

第II部分 SQL语言


第7章简单查询。介绍如何使用SELECT和FROM查询表中的数据,以及使用DISTINCT去除查询结果中的重复值。


第8章查询条件。使用WHERE子句返回满足条件的数据。


第9章排序显示。介绍如何使用ORDER BY进行查询结果的排序显示,包括单列排序、多列排序,升序和降序排序、空值排序等。


第10章限定结果数量。对于常见的Top-N查询和分页功能,PostgreSQL提供了标准的FETCH和OFFSET子句,同时还支持其他数据库中的LIMIT语法形式。


第11章分组汇总。使用GROUP BY子句对数据进行分组,并且应用聚合函数针对每个组进行汇总分析。HAVING子句可以对分组后的结果进行过滤。如果需要高级分组功能,PostgreSQL提供了GROUPING SETS、CUBE以及ROLLUP选项。


第12章多表连接。连接查询(JOIN)基于两个表中的关联字段将数据行拼接到一起,可以同时返回两个表中的相关数据。本篇介绍PostgreSQL支持的各种连接查询,包括内连接、左/右外连接、全外连接、交叉连接、自然连接以及自连接。


第13章 CASE条件表达式。CASE表达式为SQL语句增加类似于IF-THEN-ELSE的逻辑处理功能,根据不同的条件返回不同的结果。PostgreSQL支持两种形式的条件表达式以及处理空值的NULLIF函数和COALEASE函数。


第14章常用函数。介绍PostgreSQL常用的数学函数、字符函数、日期时间函数以及类型转换函数。


第15章子查询。子查询(Subquery)是指嵌套在其他SELECT、INSERT、UPDATE以及DELETE语句中的查询。本篇介绍PostgreSQL中的子查询、关联子查询、横向子查询、IN、ALL、ANY以及EXISTS操作符。


第16章集合运算。介绍PostgreSQL中的集合操作符,UNION用于将两个查询结果合并成一个结果集,返回出现在第一个查询或者出现在第二个查询中的数据;INTERSECT用于返回两个查询结果中的共同部分,即同时出现在第一个查询结果和第二个查询结果中的数据;EXCEPT用于返回出现在第一个查询结果中,但不在第二个查询结果中的数据。


第17章通用表表达式。通用表表达式(Common Table Expression)是一个临时的查询结果或者临时表,可以在其他SELECT、INSERT、UPDATE以及DELETE语句中使用。使用CTE可以提高复杂查询的可读性,递归CTE可以遍历各种层次数据。CTE和DML语句一起使用可以在一个语句中执行多个表的操作。


第18章窗口函数。PostgreSQL窗口函数(分析函数)基于和当前数据行相关的一组数据计算出一个结果。窗口函数使用OVER子句进行定义,包括PARTITION BY、ORDER BY以及frame_clause三个选项。常见的窗口函数可以分为以下几类:聚合窗口函数、排名窗口函数以及取值窗口函数。


第19章DML语句。介绍如何在PostgreSQL中对表的数据进行修改操作,包括插入数据的INSERT语句、更新数据的UPDATE语句、删除数据的DELETE语句,以及合并数据的INSERT ON CONFLICT语句。


第III部分高级功能


第20章事务与并发控制。介绍PostgreSQL中的数据库事务概念和ACID属性,并发事务可能带来的问题以及4种隔离级别,演示了如何使用事务控制语句(TCL)对事务进行处理,包括BEGIN、COMMIT、ROLLBACK以及SAVEPOINT语句。


第21章索引与优化。本篇介绍PostgreSQL中的索引概念,包括B-树索引、哈希索引等类型,唯一索引、多列索引、函数索引、部分索引以及覆盖索引等方式。如何利用索引优化数据库的查询性能,以及创建索引、查看索引、维护索引等操作。


第22章视图。介绍PostgreSQL中视图(View)的概念和作用,如何创建、修改、删除视图,以及可更新视图的使用与控制。


第23章存储过程。介绍如何使用PL/pgSQL创建存储过程和函数,包括代码的块结构、变量声明与赋值、条件语句和循环控制结构、游标的使用、错误处理以及事务控制等。


第24章触发器。介绍PostgreSQL触发器(trigger)的概念和作用,数据变更触发器(DML触发器)和事件触发器(DDL触发器)的创建、修改以及删除操作。


第IV部分编程接口


第25章 PHP访问PostgreSQL。利用PHP数据对象(PDO)接口连接和操作PostgreSQL数据库,包括创建和删除表、执行数据的增删改查操作、事务的管理以及调用存储过程和函数。


第26章 Python访问PostgreSQL。利用Python驱动程序接口psycopg连接和操作PostgreSQL数据库,包括创建和删除表、执行数据的增删改查操作、事务的管理以及调用存储过程和函数。


第27章 Java访问PostgreSQL。在Java程序中利用JDBC接口连接和操作PostgreSQL数据库,包括创建和删除表、执行数据的增删改查操作、事务的管理以及调用存储过程。


附录


SQL完整性约束。SQL标准中的6种完整性约束,以及主流数据库中的实现。

原文作者:SQL编程思想;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
《SQL编程思想》作者,专注于数据库领域知识的分享。

注册时间:2021-08-26

  • 博文量
    443
  • 访问量
    547013