Part II. SQL 语言

这部份描述在PostgreSQLSQL语言的使用。我们从描述SQL的一般语法开始,然后解释如何创建保存数据的结构、如何填充数据库以及如何查询它。中间的部分列出了在SQL命令中可用的数据类型和函数。剩余的部分则留给对于调优数据性能的重要方面。

这部份的信息被组织成让一个新用户可以从头到尾跟随它来全面理解主题,而不需要多次参考后面的内容。这些章都是自包含的,这样高级用户可以根据他们的选择阅读单独的章。这一部分的信息被以一种叙事的风格展现。需要查看一个特定命令的完整描述的读者应该去看看Part VI

这一部分的阅读者应该知道如何连接到一个PostgreSQL数据库并且发出SQL命令。我们鼓励不熟悉这些问题的读者先去阅读Part ISQL通常使用PostgreSQL的交互式终端psql输入,但是其他具有相似功能的程序也可以被使用。

Table of Contents

4. SQL语法
4.1. 词法结构
4.2. 值表达式
4.3. 调用函数
5. 数据定义
5.1. 表基础
5.2. 默认值
5.3. 约束
5.4. 系统列
5.5. 修改表
5.6. 权限
5.7. 行安全性策略
5.8. 模式
5.9. 继承
5.10. 表分区
5.11. 外部数据
5.12. 其他数据库对象
5.13. 依赖跟踪
6. 数据操纵
6.1. 插入数据
6.2. 更新数据
6.3. 删除数据
6.4. 从修改的行返回数据
7. 查询
7.1. 概述
7.2. 表表达式
7.3. 选择列表
7.4. 组合查询
7.5. 行排序
7.6. LIMITOFFSET
7.7. VALUES列表
7.8. WITH查询(公共表表达式)
8. 数据类型
8.1. 数字类型
8.2. 货币类型
8.3. 字符类型
8.4. 二进制数据类型
8.5. 日期/时间类型
8.6. 布尔类型
8.7. 枚举类型
8.8. 几何类型
8.9. 网络地址类型
8.10. 位串类型
8.11. 文本搜索类型
8.12. UUID类型
8.13. XML类型
8.14. JSON 类型
8.15. 数组
8.16. 组合类型
8.17. 范围类型
8.18. 域类型
8.19. 对象标识符类型
8.20. pg_lsn Type
8.21. 伪类型
9. 函数和操作符
9.1. 逻辑操作符
9.2. 比较函数和操作符
9.3. 数学函数和操作符
9.4. 字符串函数和操作符
9.5. 二进制串函数和操作符
9.6. 位串函数和操作符
9.7. 模式匹配
9.8. 数据类型格式化函数
9.9. 时间/日期函数和操作符
9.10. 枚举支持函数
9.11. 几何函数和操作符
9.12. 网络地址函数和操作符
9.13. 文本搜索函数和操作符
9.14. XML 函数
9.15. JSON 函数和操作符
9.16. 序列操作函数
9.17. 条件表达式
9.18. 数组函数和操作符
9.19. 范围函数和操作符
9.20. 聚集函数
9.21. 窗口函数
9.22. 子查询表达式
9.23. 行和数组比较
9.24. 集合返回函数
9.25. 系统信息函数
9.26. 系统管理函数
9.27. 触发器函数
9.28. 事件触发器函数
10. 类型转换
10.1. 概述
10.2. 操作符
10.3. 函数
10.4. 值存储
10.5. UNIONCASE和相关结构
10.6. SELECT的输出列
11. 索引
11.1. 简介
11.2. 索引类型
11.3. 多列索引
11.4. 索引和ORDER BY
11.5. 组合多个索引
11.6. 唯一索引
11.7. 表达式索引
11.8. 部分索引
11.9. 操作符类和操作符族
11.10. 索引和排序规则
11.11. 只用索引的扫描
11.12. 检查索引使用
12. 全文搜索
12.1. 介绍
12.2. 表和索引
12.3. 空值文本搜索
12.4. 额外特性
12.5. 解析器
12.6. 词典
12.7. 配置例子
12.8. 测试和调试文本搜索
12.9. GIN 和 GiST 索引类型
12.10. psql支持
12.11. 限制
13. 并发控制
13.1. 介绍
13.2. 事务隔离
13.3. 显式锁定
13.4. 应用级别的数据完整性检查
13.5. 提醒
13.6. 锁定和索引
14. 性能提示
14.1. 使用EXPLAIN
14.2. 规划器使用的统计信息
14.3. 用显式JOIN子句控制规划器
14.4. 填充一个数据库
14.5. 非持久设置
15. 并行查询
15.1. 并行查询如何工作
15.2. 何时会用到并行查询?
15.3. 并行计划
15.4. 并行安全性