postgresql数据库——数据类型总结

postgresql数据库的数据类型,


postgresql支持多种数据类型,主要有:整数类型、浮点数类型,任意精度数值,日期时间类型,字符串类型,二进制类型,布尔类型和数组类型等。


1,整数类型

,,postgresql提供了多种数值数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需要的存储空间也会越大。

,postgresql提供的整数类型有:mallint, int, bigint。


《类型名称》,《说明》,,,《存储需求》,,《取值范围》

smallint ,小范围的整数,,,字,2节,,,,-32768年——32767年

int ,,,普通大小的整数,,字,4节,,,,-2147483648——2147483647

bigint ,,大整数,,,,,,8字节,,,,-9223372036854775808——9223372036854775807



2,浮点数类型:

postgresql中使用浮点数来表示小数。浮点类型有两种:真正的和双精度,如下所示:

《类型名称》,,,,,,《说明》,,,,,《存储需求》,,

real ,,,,,,,,6位十进制数字精度,,,,,4字节

双precision ,,15位十进制数字精度,,,,,8字节


3,任意精度类型

,postgresql中使用数字表示任意精度的类型是数值,使用数字(m, n)来表示,其中m称为精度,表示总共的位数;n称为标度,是表示小数的位数例。如:563.129的精度为9标度为3

注意:数字的有效取值范围由m和D的值决定。如果改变m而固定D,那么其取值范围将随m的变大而变大。另外,如果用户指定的精度超出精度外,就会四舍五入进行处理。如下:

testdb=#创建表emp (t数字(5、1),y数字(5,3));,,

testdb=#插入emp值(9.12,9.156);

testdb=# select * from emp;

,t |,,y ,

- - - - - - + - - - - - - -

,

9.1 | 9.156


4日期与时间类型:

,,postgresql中有多种表示日期的数据类型,主要有:时间、日期、时间戳和区间。每一个类型都有合法的取值范围,当指定确实不合法的值时系统将“零”值插入数据库中。如下类型介绍:

《类型名称》,,,《含义》,,,,,,《日期范围》,,,,,《存储需求》,,,《存储格式》

time ,,,只用于一日内的时间,,就是——24:00:00 ,,,8字节,,,,,,HH: MM: SS ,,

date ,,,只用于日期,,,,,公元前4713年——-58784897 ad ,,,字,4节,,,,,YYYY-MM-DD ,

timestamp ,日期和时间,,,,,公元前4713年——-58784897 ad ,,,,8字节,,,,YYYY-MM-DD HH: MM: SS 


注意:时间和时间戳类型,默认情况下为没有时区(不带时区),如果需要,可以设置为带时区(时区)


4.1,时间:类型使用

时间类型用在时间上,在存储时需要8字节,格式为:HH: MM: SS.HH表示小时,MM表示分钟,党卫军表示秒。

例子:

testdb=#创建表测试时间(t);

testdb=#插入测试值(& # 39;11:10:25 & # 39;),(& # 39;23:45& # 39;),,,- - - - - -注意,第一个时间值最后有一个空格,

testdb=# select *从测试;

,,t ,,

- - - - - - - - - - -

, 11:10:25

, 23:45:00

(2行)


从上面的结果可以看的出,两个时间都正确插入,而且格式都为:HH: MM: SS


testdb=#插入测试值(当前时间),(现在()),,,- - -插入系统当前时间

插入0 2

testdb=# select *从测试;

,,,,t ,,,,

- - - - - - - - - - - - - - - - - -

, 11:10:25

, 23:45:00

, 04:56:57.034863

, 04:56:57.034863

(4行)

从上面可以看的出,会显示时区;



4.2,日期:类型

,,日期类型用在日期值时,没有时间部分,存储需要4字节。日期格式为:& # 39;YYYY-MM-DD& # 39;其中YYYY表示年;MM表示月;DD表示日;。在给日期类型的字段赋值时,可以使用字符串类型或者数字类型的数据插入,只要符合日期的日期格式即可。

①:以“YYYY-MM-DD”或者“名称”字符串格式表示的日期,例如,输入‘2018-12-31’或者‘20181231’,插入数据库的日期都为2018-12-31。

②:以“YY-MM-DD”或者“YYMMDD”字符串格式表示的日期,在这里YY表示两位的年值.postgresql使用以下规则解释两位年值:“00 - 69”转换年值为“2000 - 2069”,“70 - 99”转换年值为1970 - 1999,

③:利用当前日期或者现在()插入当前系统日期。

例子:


testdb=#创建表emp (d日期);

=#插入testdb emp值(& # 39;1998 - 08年- 08 - & # 39;),(& # 39;19980808 & # 39;),(& # 39;20180808 & # 39;);

=#插入testdb emp值(现在());,- - -插入系统当前值

postgresql数据库——数据类型总结