Greenplum 数据库数据类型

Greenplum 数据库有一套丰富的本地数据类型供用户使用。用户也可以使用 CREATE TYPE 命令定义新的数据类型。本参考手册对所有内置数据类型进行说明。除了这里列出的类型外,还有一些内部使用的数据类型,例如 oid (对象标识符),但这些不在本手册中介绍。

在 contrib 目录中的可选模块也可能安装新的数据类型。例如 hstore 模块引入了一种新数据类型和 连带函数来与 key-value 键值对一起工作。参见 hstore。 citext 模块添加了一种大小写不敏感的文本数据类型。参见 citext

下面的数据类型在SQL中使用: bit, bit varying, boolean, character varying, varchar, character, char, date, double precision, integer, interval, numeric, decimal, real, smallint, time (带时区或不带时区), 以及 timestamp (带时区或不带时区)。

每一种数据类型都有一种外部表示格式,这由数据类型的输入函数和输出函数决定。许多内置数据类型有明显的外部格式。然而,几种特别的数据类型要么只存在于 PostgreSQL(以及 Greenplum 数据库),例如 geometric paths,要么有几种可能的表示格式,例如时间和日期类型。一些输入和输出函数是不可逆转的,也就是说,相比较原始输入,输出函数的结果可能存在精度损失。

表 1. Greenplum 数据库内置数据类型
名称别名大小范围说明
bigintint88 字节-922337203​6854775808 到 922337203​6854775807大范围整数
bigserialserial88 字节1 到 922337203​6854775807大范围自增型整数
bit [ (n) ] n位串常量定长位串
bit varying [ (n) ]1varbit实际位数量位串常量变长位串
booleanbool1 字节true/false, t/f, yes/no, y/n, 1/0逻辑布尔值(true/false)
box 32 字节((x1,y1),(x2,y2))平面内长方形 - 不能在分布键列使用中。
bytea1 1 字节 + 二进制字符串大小8比特字符 序列变长二进制字符串
character [ (n) ]1char [ (n) ]1 字节 + n最长 n 个字符的字符串定长,(输入不足时自动用)空白填充
character varying [ (n) ]1varchar [ (n) ]1 字节 + 字符串大小最长 n 个字符的字符串有限制的变长字符串
cidr 12 或 24 字节 IPv4 和 IPv6 网络地址
circle 24 字节<(x,y),r> (中心坐标和半径)平面内圆 - 不能在分布键列使用中。
date 4 字节4713 BC - 294,277 AD日历日期 (年, 月, 日)
decimal [ (p, s) ]1numeric [ (p, s) ]可变无限制用户指定精度,精度确切
double precisionfloat8

float

8 字节15位十进制数字精度可变精度,精度不确切
inet 12 或 24 字节 IPv4 和 IPv6 主机和网络
integerint, int44 字节-2147483648 to +2147483647常用整数类型
interval [ fields ] [ (p) ] 16 字节-178000000 年到 178000000 年时间跨度(间隔)
json 1 字节 + json 大小任意长度 json不定长(无限制)
jsonb ?????????
lseg 32 字节((x1,y1),(x2,y2))平面内线段 - 不能在分布键列使用中。
macaddr 6 字节 MAC 地址
money 8 字节-92233720368547758.08 到 +92233720368547758.07货币数量
path1 16+16n 字节[(x1,y1),…]平面内几何路径 - 不能在分布键列使用中。
point 16 字节(x,y)平面内几何点 - 不能在分布键列使用中。
polygon 40+16n 字节((x1,y1),…)平面内封闭几何路径 - 不能在分布键列使用中。
realfloat44 字节6 十进制数字精度可变精度,精度不确切
serialserial44 字节1 到 2147483647自增型整数
smallintint22 字节-32768 到 +32767小范围整数
text1 1 字节 + 字符串长度任意长度字符串不定长(无限制)
time [ (p) ] [ without time zone ] 8 字节00:00:00[.000000] - 24:00:00[.000000]一天内的时间
time [ (p) ] with time zonetimetz12 字节00:00:00+1359 - 24:00:00-1359一天内的时间, 带时区
timestamp [ (p) ] [ without time zone ] 8 字节4713 BC - 294,277 AD日期和时间
timestamp [ (p) ] with time zonetimestamptz8 字节4713 BC - 294,277 AD日期和时间, 带时区
uuid 32 字节 RFC 4122, ISO/IEC 9834-8:2005 标准定义的通用唯一标识(UUID)
xml1 1 字节 + xml 大小任意长度 xml变长,无限制
txid_snapshot   用户级事务 ID 快照

父主题: Greenplum数据库参考指南

1 对于变长数据类型,如果大于或等于 127 字节,需要(除数据本身外)额外 4 字节的存储空间(小于 127 字节时额外只需要 1 字节存储空间)。