ITPub博客

首页 > 数据库 > PostgreSQL > PostgreSQL:数字——类型、运算符和函数

PostgreSQL:数字——类型、运算符和函数

原创 PostgreSQL 作者:Ryan_Bai 时间:2020-11-30 16:40:45 0 删除 编辑

数字类型

数值类型

数值类型由两个字节,4 字节和 8 字节的整数,4 字节和 8 字节的浮点数和可选精度的小数。下表列出了可用的类型。

名称 存储长度 描述 范围
smallint 2 bytes 小范围整数类型 -32768 to +32767
integer 4 bytes 整数类型 -2147483648 to +2147483647
bigint 8 bytes 大范围数据类型 -9223372036854775808 to 9223372036854775807
decimal 可变 用户指定精度 小数点前 131072 位;小数点后的 16383 位
numeric 可变 用户指定精度 小数点前 131072 位;小数点后的 16383 位
real 4 bytes 变长,不精确 6 位十进制精度
double precision 8 bytes 变长,不精确 15 位十进制精度
smallserial 2 bytes small 自增序列 1 to 32767
serial 4 bytes integer 自增序列 1 to 2147483647
bigserial 8 bytes bigint 自增序列 1 to 9223372036854775807

decimal  和 numeric 是等效的。可以存储指定精度的多位数据。比如带小数位的数据。适用于要求计算准确的数值运算。

货币类型

货币类型存储的货币金额与一个固定的分数精度。可以转换为金钱的数字,int 和 bigint 数据类型的值。不推荐使用浮点数来处理金钱的潜力,由于舍入误差。

名称 存储长度 描述 范围
money 8 bytes currency amount -92233720368547758.08 to +92233720368547758.07

运算符

假设变量 a 的值为 2,而变量 b 的值为 3:

运算符 描述 实例
+ 加法——在运算符的任何一边添加值 a + b 得 5
- 减法——从左手操作数减去右手操作数 a - b 得 -1
* 乘法——将运算符两边的值相乘 a * b 得 6
/ 除法——用左手操作数除以右手操作数 b / a 得 1
% 模数——左手操作数除以右手操作数并返回余数 b % a 得 1
^ 求幂——这给出了右手操作数的指数值 a ^ b 得 8
|/ 平方根 |/ 25.0 得 5
||/ 立方根 ||/ 27.0 得 3
!/ 阶乘 5 ! 得120
!! 阶乘(前缀操作符) !! 5 得 120

函数

数值函数

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31490526/viewspace-2738235/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE Associate; OCMU 用户组成员; Oracle 10g OCE、OCA、OCP; Oracle 11g OCP、OCM; MySQL 5.6 OCP; Oracle 11g OCP讲师; PostgreSQL PGCE 获得者;

注册时间:2017-09-18

  • 博文量
    226
  • 访问量
    260728