PostgreSQL 7.3 用户手册

PostgreSQL 全球开发组


Table of Contents
前言
1. 何为 PostgreSQL
2. 简单回顾 PostgreSQL 的历史
2.1. 伯克利的 POSTGRES 项目
2.2. Postgres95
2.3. PostgreSQL
3. 本书讲什么?
4. 文档资源概述
5. 术语和概念
6. 问题汇报指导
6.1. 标识臭虫
6.2. 汇报什么
6.3. 到哪里汇报臭虫
1. SQL 语法
1.1. 词法结构
1.1.1. 标识符和关键字
1.1.2. 常量
1.1.3. 操作符
1.1.4. 特殊字符
1.1.5. 注释
1.1.6. 词法优先级
1.2. 值表达式
1.2.1. 字段引用
1.2.2. 位置参数
1.2.3. 操作符调用
1.2.4. 函数调用
1.2.5. 聚集表达式
1.2.6. 类型转换
1.2.7. 标量子查询
1.2.8. 表达式计算
2. 数据定义
2.1. 表的基本概念
2.2. 系统字段
2.3. 缺省值
2.4. 约束
2.4.1. 检查约束
2.4.2. 非空约束
2.4.3. 唯一约束
2.4.4. 主键
2.4.5. 外键
2.5. 继承
2.6. 修改表
2.6.1. 增加字段
2.6.2. 删除字段
2.6.3. 增加约束
2.6.4. 删除约束
2.6.5. 改变缺省值
2.6.6. 给字段改名字
2.6.7. 给表改名字
2.7. 权限
2.8. 模式
2.8.1. 创建一个模式
2.8.2. Public 模式
2.8.3. 模式搜索路径
2.8.4. 模式和权限
2.8.5. 系统表模式
2.8.6. 使用方式
2.8.7. 移植性
2.9. 其它数据库对象
2.10. 依赖性追踪
3. 数据操作
3.1. 插入数据
3.2. 更新数据
3.3. 删除数据
4. 查询
4.1. 概述
4.2. 表表达式
4.2.1. FROM 子句
4.2.2. WHERE 子句
4.2.3. GROUP BY 和 HAVING 子句
4.3. 选择列表
4.3.1. 选择列表项
4.3.2. 列标签
4.3.3. DISTINCT
4.4. 组合查询
4.5. 行排序
4.6. LIMIT 和 OFFSET
5. 数据类型
5.1. 数值类型
5.1.1. 整数类型
5.1.2. 任意精度数据
5.1.3. 浮点数类型
5.1.4. Serial(序列)类型
5.2. 货币类型
5.3. 字符类型
5.4. 二进制字串
5.5. 日期/时间类型
5.5.1. 日期/时间输入
5.5.2. 日期/时间输出
5.5.3. 时区
5.5.4. 内部
5.6. 布尔类型
5.7. 几何类型
5.7.1. Point(点)
5.7.2. 线段
5.7.3. Box(方)
5.7.4. Path(路径)
5.7.5. Polygon(多边形)
5.7.6. Circle(圆)
5.8. 网络地址数据类型
5.8.1. inet
5.8.2. cidr
5.8.3. inetcidr 对比
5.8.4. macaddr
5.9. 位串类型
5.10. 对象标识符类型
5.11. 伪类型
5.12. 数组
6. 函数和操作符
6.1. 逻辑操作符
6.2. 比较操作符
6.3. 数学函数和操作符
6.4. 字符串函数和操作符
6.5. 二进制字串函数和操作符
6.6. 模式匹配
6.6.1. LIKE
6.6.2. SIMILAR TOSQL99 正则表达式
6.6.3. POSIX 正则表达式
6.7. 数据类型格式化函数
6.8. 时间/日期函数和操作符
6.8.1. EXTRACTdate_part
6.8.2. date_trunc
6.8.3. AT TIME ZONE
6.8.4. 当前日期/时间
6.9. 几何函数和操作符
6.10. 网络地址类型函数
6.11. 序列操作函数
6.12. 条件表达式
6.12.1. CASE
6.12.2. COALESCE
6.12.3. NULLIF
6.13. 杂项函数
6.14. 聚集函数
6.15. 子查询表达式
6.15.1. EXISTS
6.15.2. IN (标量形式)
6.15.3. IN (子查询形式)
6.15.4. NOT IN (标量形式)
6.15.5. NOT IN (子查询形式)
6.15.6. ANY/SOME
6.15.7. ALL
6.15.8. 逐行比较
7. 类型转换
7.1. 概述
7.2. 操作符
7.3. 函数
7.4. 查询目标
7.5. UNIONCASE构造
8. 索引
8.1. 介绍
8.2. 索引类型
8.3. 多字段索引
8.4. 唯一索引
8.5. 函数索引
8.6. 操作符表
8.7. 部分索引
8.8. 检查索引的使用
9. 并发控制
9.1. 介绍
9.2. 事务隔离
9.2.1. 读已提交隔离级别
9.2.2. 可串行化隔离级别
9.3. 明确锁定
9.3.1. 表级锁
9.3.2. 行级锁
9.3.3. 死锁
9.4. 应用层的数据完整性检查
9.5. 锁和索引
10. 性能提升技巧
10.1. 使用 EXPLAIN
10.2. 规划器使用的统计信息
10.3. 用明确的 JOIN (连接)控制规划器
10.4. 向数据库中添加记录
10.4.1. 关闭自动提交
10.4.2. 使用 COPY FROM
10.4.3. 删除索引
10.4.4. 事后运行 ANALYZE
A. 日期/时间支持
A.1. 日期/时间输入解析
A.2. 日期/时间关键字
A.3. 日期单位的历史
B. SQL 关键字
C. SQL 兼容性
C.1. 支持的特性
C.2. 不支持的特性
参考书目
List of Tables
1-1. 操作符优先级(递减)
5-1. 数据类型
5-2. 数值类型
5-3. 货币类型
5-4. 字符类型
5-5. 特殊字符类型
5-6. 二进制字串类型
5-7. bytea 文本逃逸八进制
5-8. bytea 输出逃逸序列
5-9. 日期/时间类型
5-10. 日期输入
5-11. 时间输入
5-12. time with time zone 输入
5-13. 时区输入
5-14. 特殊日期/时间输入
5-15. 日期/时间输出风格
5-16. 日期顺序习惯
5-17. 几何类型
5-18. 网络地址数据类型
5-19. cidr 类型输入举例
5-20. 对象标识类型
5-21. Pseudo-Types
6-1. 比较操作符
6-2. 数学操作符
6-3. 位串二进制操作符
6-4. 数学函数
6-5. 三角函数
6-6. SQL 字串函数和操作符
6-7. 其他函数
6-8. 内置的转换
6-9. SQL 二进制字串函数和操作符
6-10. 其它二进制字串函数
6-11. 正则表达式匹配操作符
6-12. 格式化函数
6-13. 用于 date/time 转换的模板
6-14. 日期/时间转换的模板模式修饰词
6-15. 用于向数值转换的模板模式
6-16. to_char 例子
6-17. 日期/时间操做符
6-18. 日期/时间函数
6-19. AT TIME ZONE 变体
6-20. 几何函数和操作符
6-21. 几何函数
6-22. 几何类型转换函数
6-23. cidrinet 操作符
6-24. cidrinet 函数
6-25. macaddr 函数
6-26. 序列函数
6-27. 会话信息函数
6-28. 配置设置信息函数
6-29. 访问权限查询函数
6-30. 模式可视性查询函数
6-31. 表信息函数
6-32. 注释信息函数
6-33. 聚集函数
9-1. SQL 隔离级别
10-1. pg_stats字段
A-1. 月份缩写
A-2. 星期几的缩写
A-3. 日期/时间字段修饰词
A-4. 时区缩写
A-5. 澳大利亚时区缩写
B-1. SQL 关键字
List of Examples
5-1. 使用字符类型
5-2. 使用 boolean 类型
5-3. 使用位串类型
7-1. 指数操作符类型解析
7-2. 字串连接操作符类型分析
7-3. 绝对值和阶乘类型分析
7-4. 阶乘函数参数类型解析
7-5. 子字串函数类型解析
7-6. character 存储类型转换
7-7. Union 中的待定类型
7-8. 简单 Union 中的类型转换
7-9. 转换的 Union 中的类型转换
8-1. 设置一个部分索引以排除普通数值
8-2. 设置一个部分索引以排除不感兴趣的数值
8-3. 设置一个部分唯一索引