Chapter 9. 函數和操作符

Table of Contents
9.1. 邏輯操作符
9.2. 比較操作符
9.3. 數學函數和操作符
9.4. 字符串函數和操作符
9.5. 二進制字串函數和操作符
9.6. 模式匹配
9.6.1. LIKE
9.6.2. SIMILAR TOSQL99 正則表達式
9.6.3. POSIX 正則表達式
9.7. 數據類型格式化函數
9.8. 時間/日期函數和操作符
9.8.1. EXTRACTdate_part
9.8.2. date_trunc
9.8.3. AT TIME ZONE
9.8.4. 當前日期/時間
9.9. 幾何函數和操作符
9.10. 網絡地址類型函數
9.11. 序列操作函數
9.12. 條件表達式
9.12.1. CASE
9.12.2. COALESCE
9.12.3. NULLIF
9.13. 雜項函數
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. 逐行比較

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.11 獲取有關子表達式計算順序的更多信息。