II. SQL 语言

这一部分描述 PostgreSQL 里面 SQL 语言的使用。我们从描述 SQL 的一般语法开始,然后解释如何创建保存数据的结构、如何填充数据库、以及如何查询数据库。 中间部分列出了用户可以在 SQL 命令中使用的数据类型和函数。 剩下的部分讨论那些对调节数据库、优化其性能很重要的几个方面。

这部分的信息是这样安排的:新手可以从头读到尾,便可以获取相关主题的完整信息, 而不需要向前参考太多次。里面的章节是设计成内容完整独立的,这样高级用户就可以选择独立的章节来阅读。 这部分的信息是按照主题单元以叙述的方式组织的。如果你需要了解特定命令的完整描述,那么应该看看 Part VI

本书的读者应该知道如何连接 PostgreSQL 数据库并执行 SQL 命令。我们建议那些不熟悉这些方面的读者首先阅读 Part I 。通常 SQL 命令是通过 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. 依赖性跟踪
  • 6. 数据操作
    • 6.1. 插入数据
    • 6.2. 更新数据
    • 6.3. 删除数据
  • 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. Arrays
    • 8.16. 复合类型
    • 8.17. 范围类型
    • 8.18. 对象标识符类型
    • 8.19. 伪类型
  • 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. UNION, CASE 和相关构造
  • 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. 检查索引的使用
  • 12. 全文检索
    • 12.1. 介绍
    • 12.2. 表和索引
    • 12.3. 控制文本搜索
    • 12.4. 附加功能
    • 12.5. 解析器
    • 12.6. 词典
    • 12.7. 配置实例
    • 12.8. 测试和调试文本搜索
    • 12.9. GiST和GIN索引类型
    • 12.10. psql支持
    • 12.11. 限制
    • 12.12. 来自8.3之前文本搜索的迁移
  • 13. 并发控制
    • 13.1. 介绍
    • 13.2. 事务隔离
    • 13.3. 明确锁定
    • 13.4. 应用层数据完整性检查
    • 13.5. 锁和索引
  • 14. 性能提升技巧
    • 14.1. 使用EXPLAIN
    • 14.2. 规划器使用的统计信息
    • 14.3. 用明确的JOIN控制规划器
    • 14.4. 向数据库中添加记录
    • 14.5. 非持久性设置