PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.3. 数学函数和操作符

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 9.3. 数学函数和操作符 PostgreSQL为很多类型提供了数学操作符。对于那些没有标准数学表达的类型(如日期/时间类型),我们将在后续小节中描述实际的行为。 表 9.4展示了所有可用的数学操作符。

9.3. 数学函数和操作符

PostgreSQL为很多类型提供了数学操作符。对于那些没有标准数学表达的类型(如日期/时间类型),我们将在后续小节中描述实际的行为。

表 9.4展示了所有可用的数学操作符。

表 9.4. 数学操作符

操作符 描述 例子 结果
+ 2 + 3 5
- 2 - 3 -1
* 2 * 3 6
/ 除(整数除法截断结果) 4 / 2 2
% 模(取余) 5 % 4 1
^ 指数 2.0 ^ 3.0 8
|/ 平方根 |/ 25.0 5
||/ 立方根 ||/ 27.0 3
! 阶乘 5 ! 120
!! 阶乘(前缀操作符) !! 5 120
@ 绝对值 @ -5.0 5
& 按位与 91 & 15 11
| 按位或 32 | 3 35
# 按位异或 17 # 5 20
~ 按位求反 ~1 -2
<< 按位左移 1 << 4 16
>> 按位右移 8 >> 2 2

按位操作操作符只能用于整数数据类型,而其它的操作符可以用于全部数字数据类型。按位操作的操作符还可以用于位串类型bitbit varying, 如表 9.13所示。

表 9.5显示了可用的数学函数。在该表中,dp表示double precision。这些函数中有许多都有多种不同的形式,区别是参数不同。除非特别指明,任何特定形式的函数都返回和它的参数相同的数据类型。 处理double precision数据的函数大多数是在宿主系统的 C 库基础上实现的;因此,边界情况下的准确度和行为是根据宿主系统而变化的。

表 9.5. 数学函数

函数 返回类型 描述 例子 结果
abs(x) (和输入相同) 绝对值 abs(-17.4) 17.4
cbrt(dp) dp 立方根 cbrt(27.0) 3
ceil(dp or numeric) (和输入相同) 不小于参数的最小整数 ceil(-42.8) -42
ceiling(dp or numeric) (和输入相同) 不小于参数的最小整数(ceil的别名) ceiling(-95.3) -95
degrees(dp) dp 把弧度转为角度 degrees(0.5) 28.6478897565412
div(y numericx numeric) numeric y/x的整数商 div(9,4) 2
exp(dp or numeric) (和输入相同) 指数 exp(1.0) 2.71828182845905
floor(dp or numeric) (和输入相同) 不大于参数的最大整数 floor(-42.8) -43
ln(dp or numeric) (和输入相同) 自然对数 ln(2.0) 0.693147180559945
log(dp or numeric) (和输入相同) 以10为底的对数 log(100.0) 2
log(b numericx numeric) numeric b为底的对数 log(2.0, 64.0) 6.0000000000
mod(yx) (和参数类型相同) y/x的余数 mod(9,4) 1
pi() dp π常数 pi() 3.14159265358979
power(a dpb dp) dp ab次幂 power(9.0, 3.0) 729
power(a numericb numeric) numeric ab次幂 power(9.0, 3.0) 729
radians(dp) dp 把角度转为弧度 radians(45.0) 0.785398163397448
round(dp or numeric) (和输入相同) 圆整为最接近的整数 round(42.4) 42
round(v numerics int) numeric 圆整为s位小数数字 round(42.4382, 2) 42.44
scale(numeric) integer 参数的精度(小数点后的位数) scale(8.41) 2
sign(dp or numeric) (和输入相同) 参数的符号(-1, 0, +1) sign(-8.4) -1
sqrt(dp or numeric) (和输入相同) 平方根 sqrt(2.0) 1.4142135623731
trunc(dp or numeric) (和输入相同) 截断(向零靠近) trunc(42.8) 42
trunc(v numerics int) numeric 截断为s位小数位置的数字 trunc(42.4382, 2) 42.43
width_bucket(operand dpb1dpb2 dpcount int) int 返回一个桶,这个桶是在一个有count个桶, 上界为b1,下界为b2的柱图中operand将被赋予的那个桶。为外部范围输入返回0或者count+1 width_bucket(5.35, 0.024, 10.06, 5) 3
width_bucket(operand numericb1 numericb2 numericcountint) int 返回一个桶,这个桶是在一个有count个桶,上界为b1,下界为b2的柱图中operand将被赋予的那个桶; 为范围外的输入返回0或者count+1 width_bucket(5.35, 0.024, 10.06, 5) 3
width_bucket(operandanyelementthresholdsanyarray) int 返回一个桶,它是给定数组列出桶的下限operand将被赋予的那个桶, 为了输入低于第一下界返回0thresholds数组必须被存储, 首先最小值,或者获取意想不到的结果 width_bucket(now(), array['yesterday', 'today', 'tomorrow']::timestamptz[]) 2

表 9.6展示了用于产生随机数的函数。

表 9.6. 随机函数

函数 返回类型 描述
random() dp 范围 0.0 <= x < 1.0 中的随机值
setseed(dp) void 为后续的random()调用设置种子(值为于 -1.0 和 1.0 之间,包括边界值)

random()返回的值的特征取决于系统实现。 它不适合用于加密应用,如果需要用于加密应用请参考pgcrypto模块。

最后,表 9.7显示了可用的三角函数。所有三角函数都有类型为double precision的参数和返回类型。三角函数参数表示为弧度。反函数返回表示为弧度的值。参见上述的转换函数radians()degrees()

表 9.7. 三角函数

函数 (弧度) 函数 (角度) 描述
acos(x) acosd(x) 反余弦
asin(x) asind(x) 反正弦
atan(x) atand(x) 反正切
atan2(yx) atan2d(yx) y/x的反正切
cos(x) cosd(x) 余弦
cot(x) cotd(x) 余切
sin(x) sind(x) 正弦
tan(x) tand(x) 正切

注意

另一种使用以角度度量的角的方法是使用早前展示的单位转换函数 radians()degrees()。不过, 使用基于角度的三角函数更好,因为这类方法能避免sind(30)等特殊情况下的舍入偏差。

本文转自PostgreSQL中文社区,原文链接:9.3. 数学函数和操作符

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
1天前
T-sql 高级查询( 5*函数 联接 分组 子查询)
T-sql 高级查询( 5*函数 联接 分组 子查询)
|
8天前
|
SQL 关系型数据库 MySQL
【MySQL】:探秘主流关系型数据库管理系统及SQL语言
【MySQL】:探秘主流关系型数据库管理系统及SQL语言
15 0
|
13天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
22天前
|
SQL 安全 关系型数据库
关系型数据库控制语言(DCL)
DCL是SQL的一部分,用于控制数据库安全和访问权限。主要包括GRANT(授权)、REVOKE(撤销)和角色管理。GRANT用于给予用户访问数据库对象的权限,REVOKE用于撤销权限。角色管理则允许批量授予一组权限。DCL帮助管理员精细控制数据访问,确保安全性和完整性。不同RDBMS对DCL的实现可能略有差异,使用时需参考相应文档。
18 6
|
22天前
|
SQL 数据库
数据库SQL语言实战(一)
数据库SQL语言实战(一)
|
22天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
9天前
|
SQL 数据可视化 算法
SQL Server聚类数据挖掘信用卡客户可视化分析
SQL Server聚类数据挖掘信用卡客户可视化分析
|
1天前
|
SQL 安全 数据库
SQL Server 备份和还原
SQL Server 备份和还原