Chapter 6. 函数和操作符

Table of Contents
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. 逐行比较

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

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

6.1. 逻辑操作符

常用的逻辑操作符有:

AND
OR
NOT

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

aba AND ba OR b
TRUETRUETRUETRUE
TRUEFALSEFALSETRUE
TRUENULLNULLTRUE
FALSEFALSEFALSEFALSE
FALSENULLFALSENULL
NULLNULLNULLNULL

aNOT a
TRUEFALSE
FALSETRUE
NULLNULL