为了处置数据库(中)的营业数据,需要使用SQL《(函数)去适当》处置,通常常用的(函数)都内置『在』数据库(中)。但营业需求仅仅依赖于数据库内置的(函数)远远不够,因此一个数据库若是可以提供自定义(函数)来实‘现营业’需求,对于数据库自己来说,扩展性更强。『在』PostgreSQL(中),PostgreSQL不仅支持厚实的数据类【型】,也支持厚实的 SQL (函数)。当『在』 SQL (函数)(中)传入的参数不是 PostgreSQL 期望的数据类【型】,PostgreSQL 将会实验『在』执行 SQL (函数)之前,对传入的参数举行隐式转换。同时,PostgreSQL 也支持自定义(函数),自定义(函数)涉及到 PostgreSQL (中)的SQL(函数)扩展内容,属于服务器编程内容,『在』此处不做详细先容。

一、数学(函数)

PostgreSQL 提供的数学(函数)主要用来处置数值运算,『在』PostgreSQL(中),所有的数学(函数)传入的参数可以为精度类【型】和整【型】。普遍意义上的数学(函数)包罗数学(函数),随机(函数),三角(函数)及双曲(函数)。

1.1 数学(函数)

绝对值(函数)abs(x)
绝对值(函数)返回一个数值的正数。
【{「<(示例)>」}】:

hrdb=> --绝对值(函数)
hrdb=> SELECT abs(-10.20) AS result;
 result 
--------
  10.20
(1 row)

立方根(函数)cbrt(dp)
返回一个浮点数的立方根
【{「<(示例)>」}】:

hrdb=> --立方根(函数)cbrt(dp)
SELECT cbrt(729.0) AS result;
      result       
-------------------
 9.000000000000002

向上截取(函数)ceil(dp or numeric)
<返回(即)是或者大于>传入参数的值
【{「<(示例)>」}】:

hrdb=> --向上截取(函数)
hrdb=> SELECT ceil(15.72) AS result;
 result 
--------
     16
(1 row)

hrdb=> SELECT ceil(-121.21) AS result;
 result 
--------
   -121
(1 row)

hrdb=> SELECT ceil(18) AS result;
 result 
--------
     18
(1 row)

温馨提醒:
向上截取(函数)还可以用ceiling举行截取,效果和ceil一样。感兴趣的同砚可以下去<自行验证>。

向下截取(函数)floor(dp or numeric)
返回小于或者(即)是传入‘浮点数的值’
【{「<(示例)>」}】:

hrdb=> --向下截取(函数)
hrdb=> SELECT floor(15.72) AS result;
 result 
--------
     15
(1 row)

hrdb=> SELECT floor(-121.21) AS result;
 result 
--------
   -122
(1 row)

hrdb=> SELECT floor(18) AS result;
 result 
--------
     18
(1 row)

求商(函数)div(y numeric,x numeric)
返回被除数的商
【{「<(示例)>」}】:

hrdb=> --求商(函数)
hrdb=> SELECT div(10,3) AS result;
 result 
--------
      3
(1 row)

hrdb=> SELECT div(8,4) AS result;
 result 
--------
      2
(1 row)

取余(函数)mod(y numeric,x numeric)
返回被除数的余数
【{「<(示例)>」}】:

hrdb=> --取余(函数)
hrdb=> SELECT mod(8,3) AS result;
 result 
--------
      2
(1 row)

hrdb=> SELECT mod(10,4) AS result;
 result 
--------
      2
(1 row)

幂(函数)power(a dp,b dp)
返回第一个参数的指定『幂次方』
【{「<(示例)>」}】:

hrdb=> --幂(函数)
hrdb=> SELECT power(1024,2) AS result;
 result  
---------
 1048576
(1 row)

hrdb=> SELECT power(2,3) AS result;
 result 
--------
      8

四舍五入(函数)round(v numeric,s int)
<返回>第一个参数四舍五 入后的值[
【{「<(示例)>」}】:

hrdb=> --四舍五入(函数)
hrdb=> SELECT round(10.28) AS result;
 result 
--------
     10
(1 row)

hrdb=> SELECT round(10.1824,3) AS result;
 result 
--------
 10.182
(1 row)

hrdb=> SELECT round(11.124378,4) AS result;
 result  
---------
 11.1244
(1 row)

平方根(函数)sqrt(dp or numeric)
返回传入参数的平方根
【{「<(示例)>」}】:

hrdb=> --平方根(函数)
SELECT sqrt(81) AS result;
 result 
--------
      9

符号(函数) sign(dp or numeric)
返回-1 0 1 其(中)的一个值
【{「<(示例)>」}】:

hrdb=> --符号(函数)
hrdb=> SELECT sign(-10) AS result;
 result 
--------
     -1
(1 row)

hrdb=> SELECT sign(0) AS result;
 result 
--------
      0
(1 row)

hrdb=> SELECT sign(13.2) AS result;
 result 
--------
      1
(1 row)

截取(函数) trunc(v numeric,s int)
《返回传入参数截取》指定长度的值,不指定长度,默以为0
【{「<(示例)>」}】:

hrdb=> --截取(函数) trunc
hrdb=> SELECT trunc(10.25) AS result;
 result 
--------
     10
(1 row)

hrdb=> SELECT trunc(11.287,2) AS result;
 result 
--------
  11.28
(1 row)

hrdb=> SELECT trunc(11.2364,3) AS result;
 result 
--------
 11.236
(1 row)

1.2 随机(函数)

随机(函数)random()
返回0 到 1 之间的精度类【型】值
【{「<(示例)>」}】:

hrdb=> SELECT random();
       random       
--------------------
 0.5765172911994441
(1 row)

《返回随机》字符串
【{「<(示例)>」}】:

hrdb=> --《返回随机》字符串
hrdb=> SELECT substr(md5(random()::varchar),10,6) AS result;
 result 
--------
 d914dc
(1 row)

1.3 三角(函数)

正弦(函数)sin(x)
返回角度的弧度[值
【{「<(示例)>」}】:

hrdb=> --正弦(函数)
hrdb=> SELECT sin(30) AS result;
       result        
---------------------
 -0.9880316240928618
(1 row)

温馨提醒:
可能许多同砚都熟悉三角(函数)的值,以为sin(30),就应该是0.5,(即)1/2,记着,这里返回的值是弧度值。‘若是’想要返回sin(30)为角度值,『在』PostgreSQL(中)使用sind(函数)来实现。
【{「<(示例)>」}】:

hrdb=> select sind(30);
 sind 
------
  0.5
(1 row)

余弦(函数)cos(x)
返回角度的弧度[值
【{「<(示例)>」}】:

hrdb=> --余弦(函数)
hrdb=> SELECT cos(60) AS result;
       result        
---------------------
 -0.9524129804151563
(1 row)

hrdb=> SELECT cosd(60) AS result;
 result 
--------
    0.5
(1 row)

正切(函数)tan(x)
返回角度的弧度[值
【{「<(示例)>」}】:

hrdb=> --正切(函数)
hrdb=> SELECT tan(90) AS result;
       result       
--------------------
 -1.995200412208242
(1 row)

hrdb=> SELECT tand(90) AS result;
  result  
----------
 Infinity

余切(函数) cot(x)
返回角度的弧度[值
【{「<(示例)>」}】:

hrdb=> --余切(函数)
hrdb=> SELECT cot(90) AS result;
       result        
---------------------
 -0.5012027833801532
(1 row)

hrdb=> SELECT cotd(90) AS result;
 result 
--------
      0
(1 row)

{小结}:

以上为常用的数学(函数),双曲(函数)作为三角(函数)的推导(函数),具有和三角(函数)相同的运算方式,包罗加法,乘法,二倍角公式,半角公式等等。感兴趣的同砚可以下去举行探讨。