PostgreSQL™ provides a large number of functions and operators for the built-in data types. Users can also define their own functions and operators, as described in Part V, “Server Programming”. The psql commands \df and \do can be used to list all available functions and operators, respectively.
If you are concerned about portability then note that most of the functions and operators described in this chapter, with the exception of the most trivial arithmetic and comparison operators and some explicitly marked functions, are not specified by the SQL standard. Some of this extended functionality is present in other SQL database management systems, and in many cases this functionality is compatible and consistent between the various implementations. This chapter is also not exhaustive; additional functions appear in relevant sections of the manual.
The usual logical operators are available:
AND |
OR |
NOT |
SQL uses a three-valued logic system with true,
false, and null
, which represents “unknown”.
Observe the following truth tables:
a | b | a AND b | a OR b |
---|---|---|---|
TRUE | TRUE | TRUE | TRUE |
TRUE | FALSE | FALSE | TRUE |
TRUE | NULL | NULL | TRUE |
FALSE | FALSE | FALSE | FALSE |
FALSE | NULL | FALSE | NULL |
NULL | NULL | NULL | NULL |
a | NOT a |
---|---|
TRUE | FALSE |
FALSE | TRUE |
NULL | NULL |
The operators AND
and OR
are
commutative, that is, you can switch the left and right operand
without affecting the result. But see the section called “Expression Evaluation Rules” for more information about the
order of evaluation of subexpressions.