阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      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

      目录
      目录