|
数据类型:
整型: smallint integer bigint
任意精度数值: numeric(precision,scale) 精度、刻度
浮点型: real
序号类型(自增): serial bigserial
字符类型:varchar(n) char(n) text
日期类型:timestamp8字节 2013-05-17 13:01:38.437925
Interval 12字节 555283:40:10
date 4字节 2013-05-17
time 8字节 13:01:53.890859
数组类型:integer[] 存储 array[21000,22000,23000,24000]
函数:
数学函数:
| 函数 |
返回类型 |
描述 |
例子 |
结果 |
| abs(x) |
|
绝对值 |
abs(-17.4) |
17.4 |
| cbrt(double) |
|
立方根 |
cbrt(27.0) |
3 |
| ceil(double/numeric) |
|
不小于参数的最小的整数 |
ceil(-42.8) |
-42 |
| degrees(double) |
|
把弧度转为角度 |
degrees(0.5) |
28.6478897565412 |
| exp(double/numeric) |
|
自然指数 |
exp(1.0) |
2.71828182845905 |
| floor(double/numeric) |
|
不大于参数的最大整数 |
floor(-42.8) |
-43 |
| ln(double/numeric) |
|
自然对数 |
ln(2.0) |
0.693147180559945 |
| log(double/numeric) |
|
10为底的对数 |
log(100.0) |
2 |
| log(b numeric,x numeric) |
|
numeric指定底数的对数 |
log(2.0, 64.0) |
6.0000000000 |
| mod(y, x) |
|
取余数 |
mod(9,4) |
1 |
| pi() |
double |
"π"常量 |
pi() |
3.14159265358979 |
| power(a double, b double) |
double |
求a的b次幂 |
power(9.0, 3.0) |
729 |
| power(a numeric, b numeric) |
numeric |
求a的b次幂 |
power(9.0, 3.0) |
729 |
| radians(double) |
double |
把角度转为弧度 |
radians(45.0) |
0.785398163397448 |
| random() |
double |
0.0到1.0之间的随机数值 |
random() |
|
| round(double/numeric) |
|
圆整为最接近的整数 |
round(42.4) |
42 |
| round(v numeric, s int) |
numeric |
圆整为s位小数数字 |
round(42.438,2) |
42.44 |
| sign(double/numeric) |
|
参数的符号(-1,0,+1) |
sign(-8.4) |
-1 |
| sqrt(double/numeric) |
|
平方根 |
sqrt(2.0) |
1.4142135623731 |
| trunc(double/numeric) |
|
截断(向零靠近) |
trunc(42.8) |
42 |
| trunc(v numeric, s int) |
numeric |
截断为s小数位置的数字 |
trunc(42.438,2) |
42.43 |
三角函数:
| 函数 |
描述 |
| acos(x) |
反余弦 |
| asin(x) |
反正弦 |
| atan(x) |
反正切 |
| atan2(x, y) |
正切 y/x 的反函数 |
| cos(x) |
余弦 |
| cot(x) |
余切 |
| sin(x) |
正弦 |
| tan(x) |
正切 |
字符串函数:
| 函数 |
返回类型 |
描述 |
例子 |
结果 |
| string || string |
text |
字串连接 |
'Post' || 'greSQL' |
PostgreSQL |
| char_length(string) |
int |
字串中的字符个数 |
char_length('jose') |
4 |
| convert(string using conversion_name) |
text |
使用指定的转换名字改变编码。 |
convert('PostgreSQL' using iso_8859_1_to_utf8) |
'PostgreSQL' |
| lower(string) |
text |
把字串转化为小写 |
lower('TOM') |
tom |
| overlay(string placing string from int [for int]) |
text |
替换子字串 |
overlay('Txxxxas' placing 'hom' from 2 for 4) |
Thomas |
| substring(string [from int] [for int]) |
text |
抽取子字串 |
substring('Thomas' from 2 for 3) |
hom |
| substring(string from pattern) |
text |
抽取匹配 POSIX正则表达式的子字串 |
substring('Thomas' from '...$') |
mas |
| trim([leading | trailing | both] [characters] from string) |
text |
从字串string的开头/结尾/两边/删除只包含characters(缺省是一个空白)的最长的字串 |
trim(both 'x' from 'xTomxx') |
Tom |
| upper(string) |
text |
把字串转化为大写。 |
upper('tom') |
TOM |
| btrim(string text [, characters text]) |
text |
从string开头和结尾删除只包含在characters里(缺省是空白)的字符的最长字串 |
btrim('xyxtrimyyx','xy') |
trim |
| length(string text) |
int |
string中字符的数目 |
length('jose') |
4 |
| lpad(string text, length int [, fill text]) |
text |
通过填充字符fill(缺省时为空白),把string填充为长度length。如果string已经比length长则将其截断(在右边)。 |
lpad('hi', 5, 'xy') |
xyxhi |
| ltrim(string text [, characters text]) |
text |
从字串string的开头删除只包含characters(缺省是一个空白)的最长的字串。 |
ltrim('zzzytrim','xyz') |
trim |
| replace(string text, from text, to text) |
text |
把字串string里出现地所有子字串from替换成子字串to。 |
replace('abcdefabcdef', 'cd', 'XX') |
abXXefabXXef |
| rpad(string text, length int [, fill text]) |
text |
通过填充字符fill(缺省时为空白),把string填充为长度length。如果string已经比length长则将其截断。 |
rpad('hi', 5, 'xy') |
hixyx |
| rtrim(string text [, character |
|