9.PostgreSQL数据类型与函数

本文详细介绍了PostgreSQL数据库中的各种数据类型,包括布尔、整型、浮点型、货币、文本和二进制类型等,并提到了操作符如加减乘除以及数学函数,如绝对值、平方根和对数等。此外,还讨论了变量长度的处理和自增序列。
摘要由CSDN通过智能技术生成

1.数据类型

PG数据类型 
create table t(
a1 boolean,   --布尔类型,一个字节
a2 smallint,  --2字节=int2; 
a3 int,--4字节
a33 integer,--4字节
a333 int4 ,--4字节
a4 bigint, --8字节
a5 numeric ,--10进制精确累心
a55 numeric(m,n)=decimal(m,n)
a6 real, --浮点类型
a7 double, --浮点类型
a8 money, --8字节的货币类型
a9 char varing(10),==varchar(10)
a10 varchar(10), --最多可以存储1G的数据。mysql只能存储64K
a11 text,  --文本类型,相当于mysql longtext;
a12 bitea,  --二进制类型,对应mysql 里的BLOB/LONGBLOB
a13 bit(5), --位串类型
a14 bit varing(5),--位串类型  其他数据库没有。
a15 date,
a16 time,      --包含时区和不包含时区。
a17 timestamp, --包含时区和不包含时区。
a18 enum('1','2','3'), --枚举类型
a19 point, --点
a20 line,  --线 
a21 lseg,  --线段。
a22 path,--路径 
a23 polygon, --多边形
a24 cycle, --圆
a25 [],  --数组类型
a26 cidr, --网络地址类型
a27 inet, 
a28 macaddr, --三种类型
a29 复合类型, 
a30 xml,
a31 json, 
a32 range,
a33 oid, 
a34 regproc,
a35 regclass,
a36 any,
a37 anyarray,
a38 anyelement,
a39 cstring,
a40 internal,
a41 language_handler,
a42 record,
a43 trigger,
a44 void,
a45 opaque,
a46 uuid,
a47 pg_lsn
);


select 1,1.1412,'hello word';
select bit '111110011';
select int '1'+int '2';
select cast('5' as int),cast('2014-07-17' as date);
select '5'::int,'2014-07-17'::date;

布尔类型的值:TRUE,FALSE,'true','false','yes','no',null,'t','f','1','0';

表达式:IS TRUE;
表达式:IS NOT TRUE;
表达式:IS FALSE;
表达式:IS NOT FALSE;
表达式:IS UNKOWN;
表达式:IS NOT UNKOWN;

smallint 2字节, -2^15~ 2^15-1
int/integer 4字节 -2^31~2^31-1 
bigint  8字节 -2^63~2^63-1 
numeric/decimal   变长数字,无限制。
real 4 字节, 变精度,不精确,6位十进制数字
double precision 8 字节,变精度,不精确,15位十进制数字精度。
serial  4字节,自增整数。1~2^31-1 
bigserial 8字节 大范围自增整数。1~2^63-1 


numeric/numeric(m,n)/numeric(m) /decimal --精确 类型。

numeric表示任意精度。

create table t(id serial); 自增序列。
select '12.32'::money;   输出格式和 lc_money 有关。
show lc_monetary;  --查看钱的输出格式。
set lc_monetary=en_US.UTF-8;

2.操作符

+
-
*  乘号
/ 除 
%  模(求余数)
^   幂指数。
|/  平方根 |/36=6 
||/  立方根 ||/8=2 
!  阶乘  5! =120
!!  阶乘  !!5 =120
@ 绝对值   @-5.0=5 
& 二进制and;   31&15=15 
| 二进制or ;   31|15=31 
# 二进制XOR ;  31#15=16 
~ 二进制not;   ~1=-2 
<< 二进制左移; 1<<8 =256 
>> 二进制右移; 16>>3=2   

3.数学函数

abs(-23.7)=23.7    --绝对值: 
cbrt(8)=2     --立方根:
ceil(-38.8)=-38 ,ceiling(-38.8)=-38   --不小于参数的最小整数:
degree(1)=57.2957795    --把弧度转化为角度:
exp(1)=2.7182818  --自然指数:
floor(-42.8)=-43,floor(42.8)=42   --不大于参数的最大值:
ln(2.71828)=0.9999993273472820   --自然对数:
log(1000)=3   --以10为底的对数:
log(2.0,32.0)=5    --以b为底数的对数:log(b,x),  
mod(7,3)=1    --y/x的余数:mod(y,x),  
pi()=3.14159265358979  --pi常量:
power(2.0,3.0)=8    --a的b次幂:
radians(45.0)=0.785398163397448   --角度转换为弧度:
random()     --随机一个小数。0.0~1.0之间的随机数:
round(36.5)=37  --四舍五入到最接近的整数:
round(36.5252,2)=36.53  --四舍五入到n位小数:
setseed(0.54823)=117314959  --为随后的random()调用设置种子(0~1之间) :
sign(-8.4)=-1   --参数的符号:(-1,0,1), 
sqrt(2)=1.4142136623731   --平方根:
trunc(42.8)=42   --截断,向零靠近:
trunc(42.4382,2)=42.43  --截断为n位小数:
acos(1)=0   --反余玄
acos(-1)=3.14159265358979
asin(0)=0 --反正玄
asin(1)*2=3.14159265358979 --反余玄
atan(1)=0.788398163397448 --反正切 
atan2(1,1)=0.788398163397448  --x/y的反正切。
cos(pi())=-1 ,cos(0)=1  --余玄 
cot(0)=Infinity     --余切
sin(0)=0,sin(pi()/2)=1  --正玄 
tan(pi()/4)=1  --正切 


character varing(n)
varchar(n)    pg变长,最大1G,oracle中varchar2(n) 最多4000,mysql varchar(n) 最多64K。

character(n),char(n) 定长,最大1G。
text :变长,无长度限制,与mysql中的longtext 类似。

4.总结

postgresql的数据类型非常丰富,功能非常强大。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值