Many functions and operators are available
in POSTGRESQL. Function calls can take zero, one, or more
arguments and return a single value. You can list all functions and
their arguments using psql's \df
command. You can use psql's \dd command
to display comments about any specific function or group of functions,
as shown in Figure .
test=> \df
List of functions
Result | Function | Arguments
-----------+---------------------+------------------------------------------
_bpchar | _bpchar | _bpchar int4
_varchar | _varchar | _varchar int4
float4 | abs | float4
float8 | abs | float8
test=> \df int
List of functions
Result | Function | Arguments
----------+------------------+------------------------
int2 | int2 | float4
int2 | int2 | float8
int2 | int2 | int2
int2 | int2 | int4
test=> \df upper
List of functions
Result | Function | Arguments
--------+----------+-----------
text | upper | text
(1 row)
test=> \dd upper
Object descriptions
Name | Object | Description
-------+----------+-------------
upper | function | uppercase
(1 row)
test=> SELECT upper('jacket');
upper
--------
JACKET
(1 row)
test=> SELECT sqrt(2.0); -- square root
sqrt
-----------------
1.4142135623731
(1 row)
Operators differ from functions in the following ways:
test=> \do
List of operators
Op | Left arg | Right arg | Result | Description
-----+-------------+-------------+-----------+----------------------------------
! | int2 | | int4 |
! | int4 | | int4 | factorial
! | int8 | | int8 | factorial
!! | | int2 | int4 |
test=> \do /
List of operators
Op | Left arg | Right arg | Result | Description
----+----------+-----------+----------+------------------------------
/ | box | point | box | divide box by point (scale)
/ | char | char | char | divide
/ | circle | point | circle | divide
/ | float4 | float4 | float4 | divide
test=> \do ^
List of operators
Op | Left arg | Right arg | Result | Description
----+----------+-----------+--------+----------------------
^ | float8 | float8 | float8 | exponentiation (x^y)
(1 row)
test=> \dd ^
Object descriptions
Name | Object | Description
------+----------+----------------------
^ | operator | exponentiation (x^y)
(1 row)
test=> SELECT 2 + 3 ^ 4;
?column?
----------
83
(1 row)
The standard arithmetic operators--addition (+), subtraction (-), multiplication (*), division (/), modulo/remainder (%), and exponentiation (^)--honor the standard precedence rules. That is, exponentiation is performed first; multiplication, division, and modulo second; and addition and subtraction last. You can use parentheses to alter this precedence. Other operators are evaluated in a left-to-right manner, unless parentheses are present.