PostgreSql数据类型

1、数值类型:

smallint     2 字节   小范围整数   -32768 到 +32767
integer      4 字节     常用的整数 -2147483648 到 +2147483647
bigint       8 字节   大范围整数   -9223372036854775808 到 +9223372036854775807
decimal     可变长 用户指定的精度,精确  小数点前 131072 位;小数点后 16383 位
numeric     可变长 用户指定的精度,精确  小数点前 131072 位;小数点后 16383 位
real         4 字节   可变精度,不精确    6 位十进制数字精度
double precision    8 字节    可变精度,不精确    15 位十进制数字精度
smallserial  2 字节   自增的小范围整数    1 到 32767
serial       4 字节   自增整数    1 到 2147483647
bigserial    8 字节   自增的大范围整数    1 到 9223372036854775807

2、字符类型:

1   character varying(n), varchar(n)   变长,有长度限制
2   character(n), char(n)  f定长,不足补空白
3   text  变长,无长度限制

简单来说,varchar的长度可变,而char的长度不可变,对于postgresql数据库来说varchar和char的区别仅仅在于前者是变长,而后者是定长,最大长度都是10485760(1GB)

  varchar不指定长度,可以存储最大长度(1GB)的字符串,而char不指定长度,默认则为1,这点需要注意。

  text类型:在postgresql数据库里边,text和varchar几乎无性能差别,区别仅在于存储结构的不同。

  对于char的使用,应该在确定字符串长度的情况下使用,否则应该选择varchar或者text。

 

        其他人说的最大长度是10485760,我不是DBA,也没做过这个实验。但是有疑问,编码格式不为UTF-8时,是否还是10485760?

        text类型是挺好用的,假如需要存储一个复杂且结构可能会变化的数据,搞成json字符串存储到text里也是很好的。感觉成了MongoDB

 

3、时间类型:

timestamp [ (p) ] [ without time zone ] 8 字节    日期和时间(无时区)  4713 BC 294276 AD   1 毫秒 / 14 位
timestamp [ (p) ] with time zone    8 字节    日期和时间,有时区   4713 BC 294276 AD   1 毫秒 / 14 位
date    4 字节    只用于日期   4713 BC 5874897 AD  1 天
time [ (p) ] [ without time zone ]  8 字节    只用于一日内时间    00:00:00    24:00:00    1 毫秒 / 14 位
time [ (p) ] with time zone 12 字节   只用于一日内时间,带时区    00:00:00+1459   24:00:00-1459   1 毫秒 / 14 位
interval [ fields ] [ (p) ] 12 字节   时间间隔    -178000000 年    178000000 年 1 毫秒 / 14 位

4、货币类型:

money 类型存储带有固定小数精度的货币金额。
numeric、int 和 bigint 类型的值可以转换为 money,不建议使用浮点数来处理处理货币类型,因为存在舍入错误的可能性。
| 名字  | 存储容量 | 描述         | 范围                                         
| :----   | :-------       | :-------      | :-----------------------------------------
| money | 8 字节   | 货币金额 | -92233720368547758.08 到 +92233720368547758.07 |

5. 枚举类型

枚举类型可以使用CREATE TYPE命令创建,例如:
CREATE TYPE mood AS ENUM (‘sad’, ‘ok’, 'happy’);
一旦被创建,枚举类型可以像很多其他类型一样在表和函数定义中使用。

 6.布尔类型

名称别名存储大小范围描述与其他数据库对比
booleanbool1字节true/falseMySQL中boolean,Oracle中number(1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值