树叶云PostgreSQL教程PostgreSQL 常用函数

PostgreSQL 常用函数

PostgreSQL 内置函数也称为聚合函数,用于对字符串或数字数据执行处理。

下面是所有通用 PostgreSQL 内置函数的列表:

  • COUNT 函数:用于计算数据库表中的行数。
  • MAX 函数:用于查询某一特定列中最大值。
  • MIN 函数:用于查询某一特定列中最小值。
  • AVG 函数:用于计算某一特定列中平均值。
  • SUM 函数:用于计算数字列所有值的总和。
  • ARRAY 函数:用于输入值(包括null)添加到数组中。
  • Numeric 函数:完整列出一个 SQL 中所需的操作数的函数。
  • String 函数:完整列出一个 SQL 中所需的操作字符的函数。

数学函数

下面是PostgreSQL中提供的数学函数列表,需要说明的是,这些函数中有许多都存在多种形式,区别只是参数类型不同。除非特别指明,任何特定形式的函数都返回和它的参数相同的数据类型。

函数返回类型描述例子结果
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()double0.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)正切

字符串函数和操作符

下面是 PostgreSQL 中提供的字符串操作符列表:

函数返回类型描述例子结果
string || stringtext字串连接‘Post’ 丨丨 ‘greSQL’PostgreSQL
bit_length(string)int字串里二进制位的个数bit_length(‘jose’)32
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
octet_length(string)int字串中的字节数octet_length(‘jose’)4
overlay(string placing string from int [for int])text替换子字串overlay(‘Txxxxas’ placing ‘hom’ from 2 for 4)Thomas
position(substring in string)int指定的子字串的位置position(‘om’ in ‘Thomas’)3
substring(string [from int] [for int])text抽取子字串substring(‘Thomas’ from 2 for 3)hom
substring(string from pattern)text抽取匹配 POSIX 正则表达式的子字串substring(‘Thomas’ from ‘…$’)mas
substring(string from pattern for escape)text抽取匹配SQL正则表达式的子字串substring(‘Thomas’ from ‘%#”o_a#”_’ for ‘#’)oma
trim([leading丨trailing 丨 both] [characters] from string)text从字串string的开头/结尾/两边/ 删除只包含characters(默认是一个空白)的最长的字串trim(both ‘x’ from ‘xTomxx’)Tom
upper(string)text把字串转化为大写。upper(‘tom’)TOM
ascii(text)int参数第一个字符的ASCII码ascii(‘x’)120
btrim(string text [, characters text])text从string开头和结尾删除只包含在characters里(默认是空白)的字符的最长字串btrim(‘xyxtrimyyx’,’xy’)trim
chr(int)text给出ASCII码的字符chr(65)A
convert(string text, [src_encoding name,] dest_encoding name)text把字串转换为dest_encodingconvert( ‘text_in_utf8’, ‘UTF8’, ‘LATIN1’)以ISO 8859-1编码表示的text_in_utf8
initcap(text)text把每个单词的第一个子母转为大写,其它的保留小写。单词是一系列字母数字组成的字符,用非字母数字分隔。initcap(‘hi thomas’)Hi Thomas
length(string text)intstring中字符的数目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
md5(string text)text计算给出string的MD5散列,以十六进制返回结果。md5(‘abc’)
repeat(string text, number int)text重复string number次。repeat(‘Pg’, 4)PgPgPgPg
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 text])text从字串string的结尾删除只包含character(默认是个空白)的最长的字rtrim(‘trimxxxx’,’x’)trim
split_part(string text, delimiter text, field int)text根据delimiter分隔string返回生成的第field个子字串(1 Base)。split_part(‘abc~@~def~@~ghi’, ‘~@~’, 2)def
strpos(string, substring)text声明的子字串的位置。strpos(‘high’,’ig’)2
substr(string, from [, count])text抽取子字串。substr(‘alphabet’, 3, 2)ph
to_ascii(text [, encoding])text把text从其它编码转换为ASCII。to_ascii(‘Karel’)Karel
to_hex(number int/bigint)text把number转换成其对应地十六进制表现形式。to_hex(9223372036854775807)7fffffffffffffff
translate(string text, from text, to text)text把在string中包含的任何匹配from中的字符的字符转化为对应的在to中的字符。translate(‘12345′, ’14’, ‘ax’)a23x5

类型转换相关函数

函数返回类型描述实例
to_char(timestamp, text)text将时间戳转换为字符串to_char(current_timestamp, ‘HH12:MI:SS’)
to_char(interval, text)text将时间间隔转换为字符串to_char(interval ’15h 2m 12s’, ‘HH24:MI:SS’)
to_char(int, text)text整型转换为字符串to_char(125, ‘999’)
to_char(double precision, text)text双精度转换为字符串to_char(125.8::real, ‘999D9’)
to_char(numeric, text)text数字转换为字符串to_char(-125.8, ‘999D99S’)
to_date(text, text)date字符串转换为日期to_date(’05 Dec 2000′, ‘DD Mon YYYY’)
to_number(text, text)numeric转换字符串为数字to_number(‘12,454.8-‘, ’99G999D9S’)
to_timestamp(text, text)timestamp转换为指定的时间格式 time zone convert string to time stampto_timestamp(’05 Dec 2000′, ‘DD Mon YYYY’)
to_timestamp(double precision)timestamp把UNIX纪元转换成时间戳to_timestamp(1284352323)

参考文章:https://blog.csdn.net/sun5769675/article/details/50628979

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/251761.html<

(0)
管理的头像管理
上一篇2025-04-29 03:18
下一篇 2025-04-29 03:19

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注