深入浅出PostgreSQL

作者
屠要峰
丛书名
出版社
电子工业出版社
ISBN
9787121369018
简要
简介
内容简介书籍计算机书籍 PostgreSQL是和MySQL类似的关系型数据库。*近PostgreSQL的关注度正在提升,各种会议、培训,都在介绍PostgreSQL。本章按照关系型数据的一般性结构进行讲解,即安装→建库→建表→查询→索引→视图→触发器→权限管理→备份→事务→优化。具体章安排如下:第1章 初识PostgreSQL;第2章 安装及启动PostgreSQL;第3章 创建数据库并输入数据;第4章 数据类型及其运算符;第5章 函数;第6章 查询和修改数据;第7章 索引;第8章 视图;第9章 触发器第10章 表继承和表分区;第11章 管理用户权限和模式;第12章 配置和管理数据库服务器;第13章 备份和恢复数据;第14章 事务;第15章 优化SQL语句;第16章 优化数据库服务端性能;第17章 PL/PgSQL服务端编程;第18章 高可用方案;第19章 设计一个商品管理数据库;
目录
------------------第1篇 准备

--第1章 初识PostgreSQL /2

1.1 PostgreSQL的起源 /2

1.2 PostgreSQL简介 /3

O1.2.1 基本概念 /3

O1.2.2 存储体系结构 /4

O1.2.3 进程体系架构 /6

1.3 PostgreSQL 10版本的新特性 /6

1.4 小结 /7

-

-第2章 安装和启动PostgreSQL /8

2.1 安装PostgreSQL /8

O2.1.1 在Windows中安装PostgreSQL /8

O2.1.2 在Linux中安装PostgreSQL /12

O2.1.3 源码安装PostgreSQL /14

2.2 初始化数据库 /17

2.3 数据库的基本配置 /18

O2.3.1 配置数据库监听IP和端口 /18

O2.3.2 配置数据库错误日志 /18

2.4 启动、停止、查看数据库 /18

O2.4.1 启动数据库 /18

O2.4.2 停止数据库 /19

O2.4.3 查看数据库状态 /19

2.5 小结 /19

-

------------------第2篇 入门

-

第3章 创建数据库和表 /21

3.1 认识SQL语言 /21

O3.1.1 SQL语句类型 /21

O3.1.2 SQL数据类型 /21

3.2 使用交互式终端psql /22

O3.2.1 连接数据库 /22

O3.2.2 常用命令 /23

O3.2.3 使用技巧 /26

3.3 表空间的创建、修改和删除 /27

O3.3.1 实例1:创建表空间 /27

O3.3.2 实例2:修改表空间 /29

O3.3.3 实例3:删除表空间 /29

3.4 数据库的创建、修改和删除 /30

O3.4.1 实例4:创建数据库 /30

O3.4.2 实例5:修改数据库 /31

O3.4.3 实例6:删除数据库 /32

3.5 创建数据表 /32

O3.5.1 创建表的语法格式 /32

O3.5.2 使用CHECK约束 /35

O3.5.3 使用非空约束 /36

O3.5.4 使用唯一性约束 /36

O3.5.5 使用主键约束 /37

O3.5.6 使用默认约束 /38

O3.5.7 使用外键约束 /38

O3.5.8 实例7:设置表的属性值自动增加 /40

O3.5.9 实例8:查看表结构 /41

3.6 修改数据表 /42

O3.6.1 实例9:修改表名 /42

O3.6.2 实例10:修改字段名 /43

O3.6.3 实例11:添加字段 /43

O3.6.4 实例12:删除字段 /44

O3.6.5 实例13:删除表的外键约束 /44

3.7 删除数据表 /46

O3.7.1 实例14:删除没有被关联的表 /46

O3.7.2 实例15:删除被其他表关联的主表 /46

3.8 数据的插入、修改和删除 /47

O3.8.1 实例16:向表中插入数据 /47

O3.8.2 实例17:修改表中的数据 /48

O3.8.3 实例18:删除表中的数据 /49

3.9 数据的简单查询 /50

O3.9.1 实例19:创建最简单的单表查询 /50

O3.9.2 实例20:创建带过滤条件的查询 /50

3.10 小结 /51

-

第4章 数据类型及其运算符 /52

4.1 数值类型 /52

O4.1.1 整数类型 /52

O4.1.2 任意精度数字类型 /53

O4.1.3 浮点类型 /53

O4.1.4 序列类型 /54

O4.1.5 货币类型 /55

O4.1.6 实例21:使用数学运算符 /55

4.2 字符串类型 /56

O4.2.1 字符串类型分类 /57

O4.2.2 使用连接运算符 /57

O4.2.3 使用模式匹配运算符 /58

4.3 二进制数据类型 /60

O4.3.1 二进制数据类型简介 /60

O4.3.2 二进制数据的十六进制格式 /61

4.3.3 二进制数据的转义格式 /61

4.4 日期类型和时间类型 /61

O4.4.1 日期类型和时间类型分类 /61

O4.4.2 日期类型和时间类型输入格式 /62

O4.4.3 日期类型和时间类型输出格式 /64

O4.4.4 时区 /64

O4.4.5 使用日期类型和时间类型运算符 /65

4.5 布尔类型 /66

O4.5.1 布尔类型简介 /66

O4.5.2 布尔类型运算符 /66

4.6 位串类型 /68

O4.6.1 位串类型简介 /68

O4.6.2 实例22:使用位串类型运算符 /68

4.7 枚举类型 /69

O4.7.1 声明枚举类型 /69

O4.7.2 排序 /69

O4.7.3 注意枚举类型安全性 /70

4.8 几何类型 /71

O4.8.1 点(point) /71

O4.8.2 线(line) /72

O4.8.3 线段(lseg) /72

O4.8.4 矩形(box) /73

O4.8.5 路径(path) /74

O4.8.6 多边形(polygon) /75

O4.8.7 圆(circle) /75

O4.8.8 实例23:使用几何类型运算符 /76

4.9 JSON数据类型 /77

O4.9.1 JSON数据类型简介 /77

O4.9.2 JSON数据类型的输入/输出语法 /78

O4.9.3 实例24:使用json运算符 /79

O4.9.4 实例25:使用jsonb运算符 /79

4.10 范围类型 /80

O4.10.1 内建范围类型 /80

O4.10.2 范围类型的边界 /81

O4.10.3 范围值的输入 /81

O4.10.4 使用范围类型运算符 /82

O4.10.5 实例26:定义自己的范围类型 /83

4.11 数组类型 /83

O4.11.1 定义数组类型 /84

O4.11.2 输入数组 /84

O4.11.3 访问数组 /86

O4.11.4 修改数组 /87

O4.11.5 查找数组中的内容 /88

O4.11.6 数组运算符 /89

4.12 小结 /89

-

第5章 函数 /90

5.1 数学函数 /90

O5.1.1 认识数学函数 /90

O5.1.2 实例27:使用数学函数对小数取整 /93

5.2 字符串函数 /94

O5.2.1 认识字符串函数 /95

O5.2.2 认识二进制字符串函数 /99

O5.2.3 实例28:使用format()函数格式化输出 /101

5.3 数据类型格式化函数 /103

5.4 序列函数 /104

O5.4.1 认识序列函数 /104

O5.4.2 实例29:创建及使用序列函数 /104

5.5 日期函数和时间函数 /107

O5.5.1 认识日期函数和时间函数 /107

O5.5.2 实例30:使用AT TIME ZONE进行时区转换 /110

O5.5.3 实例31:获取当前的日期和时间 /111

O5.5.4 实例32:设置延时执行 /112

5.6 位串函数 /113

O5.6.1 认识位串函数 /113

O5.6.2 实例33:使用bit()函数转换整数和位串 /113

5.7 枚举函数 /114

O5.7.1 认识枚举函数 /114

O5.7.2 实例34:使用枚举函数获取枚举类型中的值 /114

5.8 几何函数 /115

O5.8.1 认识几何函数 /115

O5.8.2 实例35:使用area()函数计算几何类型的面积 /117

5.9 JSON函数 /117

O5.9.1 JSON创建函数 /117

O5.9.2 JSON处理函数 /118

O5.9.3 实例36:使用to_json()函数将字符串转换成JSON格式 /122

O5.9.4 实例37:使用json_array_length()函数统计JSON数据类型中的元素个数 /122

5.10 范围函数 /123

O5.10.1 认识范围函数 /123

O5.10.2 实例38:用range_merge()函数获取一个包含给定范围的最小范围 /123

O5.10.3 实例39:用upper_inc()函数判断上界是否被包含在范围内 /123

5.11 数组函数 /124

O5.11.1 认识数组函数 /124

O5.11.2 实例40:用array_position()函数在数组中检索数据 /125

O5.11.3 实例41:用array_to_string()函数将数组转为字符串 /126

5.12 其他函数 /126

O5.12.1 聚合函数 /126

O5.12.2 集合返回函数 /131

O5.12.3 系统信息函数 /131

O5.12.4 系统管理函数 /133

5.13 小结 /134

-

第6章 查询和修改数据 /135

6.1 SELECT语法 /135

6.2 单表查询 /136

O6.2.1 实例42:简单查询 /136

O6.2.2 实例43:等值查询 /137

O6.2.3 实例44:范围查询 /137

O6.2.4 实例45:去重 /138

O6.2.5 实例46:排序 /140

O6.2.6 实例47:分组 /140

O6.2.7 实例48:分页 /141

6.3 多表查询 /142

O6.3.1 实例49:内连接 /143

O6.3.2 实例50:外连接 /144

O6.3.3 实例51:交叉连接 /146

O6.3.4 实例52:多表关联复合查询 /146

6.4 子查询 /147

O6.4.1 实例53:IN/NOT IN 子查询 /147

O6.4.2 实例54:EXISTS/NOT EXISTS子查询 /148

O6.4.3 实例55:ANY/SOME/ALL子查询 /149

6.5 模糊匹配查询 /150

O6.5.1 实例56:LIKE查询 /150

O6.5.2 实例57:SIMILAR TO查询 /152

6.6 查询运算 /152

O6.6.1 实例58:聚集运算 /152

O6.6.2 实例59:分组运算 /154

O6.6.3 实例60:表达式运算 /156

O6.6.4 实例61:递归查询 /157

6.7 窗口函数 /158

6.8 高级操作 /162

O6.8.1 实例62:归并数据 /162

O6.8.2 实例63:批量插入 /164

O6.8.3 实例64:批量更新 /165

O6.8.4 实例65:关联更新 /166

O6.8.5 实例66:批量删除 /166

O6.8.6 实例67:关联删除 /166

O6.8.7 实例68:移动数据到历史表 /167

O6.8.8 实例69:清空表 /167

6.9 小结 /168

-

-----------------第3篇 进阶

-

第7章 索引 /170

7.1 索引简介 /170

O7.1.1 索引的含义和作用 /170

O7.1.2 索引的分类 /171

O7.1.3 索引的设计原则 /172

7.2 索引操作 /172

O7.2.1 创建索引 /172

O7.2.2 修改索引 /174

O7.2.3 删除索引 /175

7.3 常用索引方法 /176

O7.3.1 多列索引 /176

O7.3.2 组合索引 /177

O7.3.3 唯一索引 /177

O7.3.4 表达式索引 /178

O7.3.5 部分索引 /178

O7.3.6 索引与排序 /180

7.4 索引类型 /180

O7.4.1 B-tree索引 /180

O7.4.2 Hash索引 /181

O7.4.3 GiST索引 /182

O7.4.4 SP-GiST索引 /184

O7.4.5 GIN索引 /185

O7.4.6 BRIN索引 /186

7.5 索引使用案例 /187

O7.5.1 实例70:使用GiST索引提升RANGE类型数据的查询性能 /187

O7.5.2 实例71:使用SP-GiST索引快速查找几何空间数据 /189

O7.5.3 实例72:使用GIN索引快速查找JSON数据 /19



有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4