Chapter 9. 函数和操作符

Table of Contents
9.1. 逻辑操作符
9.2. 比较操作符
9.3. 数学函数和操作符
9.4. 字符串函数和操作符
9.5. 二进制字串函数和操作符
9.6. 位串函数和操作符
9.7. 模式匹配
9.7.1. LIKE
9.7.2. SIMILAR TO 正则表达式
9.7.3. POSIX 正则表达式
9.8. 数据类型格式化函数
9.9. 时间/日期函数和操作符
9.9.1. EXTRACTdate_part
9.9.2. date_trunc
9.9.3. AT TIME ZONE
9.9.4. 当前日期/时间
9.10. 几何函数和操作符
9.11. 网络地址类型函数和操作符
9.12. 序列操作函数
9.13. 条件表达式
9.13.1. CASE
9.13.2. COALESCE
9.13.3. NULLIF
9.13.4. GREATESTLEAST
9.14. 数组函数和操作符
9.15. 聚集函数
9.16. 子查询表达式
9.16.1. EXISTS
9.16.2. IN
9.16.3. NOT IN
9.16.4. ANY/SOME
9.16.5. ALL
9.16.6. 逐行比较
9.17. 行和数组比较
9.17.1. IN
9.17.2. NOT IN
9.17.3. ANY/SOME (数组)
9.17.4. ALL (array)
9.17.5. 逐行比较
9.18. 返回集合的函数
9.19. 系统信息函数
9.20. 系统管理函数

PostgreSQL 为内建的数据类型提供了大量的函数和操作符。 用户也可以定义它们自己的函数和操作符, 象 Part V 里描述的那样。 psql 命令 \df\do 可以分别用于显示所有实际可用的函数和操作符的列表。

如果你关心移植性,那么请注意,我们在本章描述的大多数函数和操作符, 除了最琐碎的算术和比较操作符以及一些做了明确标记的函数以外,都没有在SQL标准里声明。 许多其它 SQL 实现也有这些扩展的功能, 并且很多时候不同的数据库产品中这些功能是相互兼容的。 本章也并没有穷尽一切信息;一些附加的函数在本手册的相关章节里出现。

9.1. 逻辑操作符

常用的逻辑操作符有:

AND
OR
NOT

SQL 使用三值的布尔逻辑,这时空值代表"unknown"。 观察下面真值表:

aba AND ba OR b
TRUETRUETRUETRUE
TRUEFALSEFALSETRUE
TRUENULLNULLTRUE
FALSEFALSEFALSEFALSE
FALSENULLFALSENULL
NULLNULLNULLNULL

aNOT a
TRUEFALSE
FALSETRUE
NULLNULL

操作符 ANDOR 都是可交换的, 也就是说,你可以交换左右操作数而不影响结果。但是请参阅 Section 4.2.12 获取有关子表达式计算顺序的更多信息。