Greenplum 数据库数据类型
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,要么有几种可能的表示格式,例如时间和日期类型。一些输入和输出函数是不可逆转的,也就是说,相比较原始输入,输出函数的结果可能存在精度损失。
名称 | 别名 | 大小 | 范围 | 说明 |
---|---|---|---|---|
bigint | int8 | 8 字节 | -9223372036854775808 到 9223372036854775807 | 大范围整数 |
bigserial | serial8 | 8 字节 | 1 到 9223372036854775807 | 大范围自增型整数 |
bit [ (n) ] | n 位 | 位串常量 | 定长位串 | |
bit varying [ (n) ]1 | varbit | 实际位数量 | 位串常量 | 变长位串 |
boolean | bool | 1 字节 | true/false, t/f, yes/no, y/n, 1/0 | 逻辑布尔值(true/false) |
box | 32 字节 | ((x1,y1),(x2,y2)) | 平面内长方形 - 不能在分布键列使用中。 | |
bytea1 | 1 字节 + 二进制字符串大小 | 8比特字符 序列 | 变长二进制字符串 | |
character [ (n) ]1 | char [ (n) ] | 1 字节 + n | 最长 n 个字符的字符串 | 定长,(输入不足时自动用)空白填充 |
character varying [ (n) ]1 | varchar [ (n) ] | 1 字节 + 字符串大小 | 最长 n 个字符的字符串 | 有限制的变长字符串 |
cidr | 12 或 24 字节 | IPv4 和 IPv6 网络地址 | ||
circle | 24 字节 | <(x,y),r> (中心坐标和半径) | 平面内圆 - 不能在分布键列使用中。 | |
date | 4 字节 | 4713 BC - 294,277 AD | 日历日期 (年, 月, 日) | |
decimal [ (p, s) ]1 | numeric [ (p, s) ] | 可变 | 无限制 | 用户指定精度,精度确切 |
double precision | float8 float |
8 字节 | 15位十进制数字精度 | 可变精度,精度不确切 |
inet | 12 或 24 字节 | IPv4 和 IPv6 主机和网络 | ||
integer | int, int4 | 4 字节 | -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),...) | 平面内封闭几何路径 - 不能在分布键列使用中。 | |
real | float4 | 4 字节 | 6 十进制数字精度 | 可变精度,精度不确切 |
serial | serial4 | 4 字节 | 1 到 2147483647 | 自增型整数 |
smallint | int2 | 2 字节 | -32768 到 +32767 | 小范围整数 |
text1 | 1 字节 + 字符串长度 | 任意长度字符串 | 不定长(无限制) | |
time [ (p) ] [ without time zone ] | 8 字节 | 00:00:00[.000000] - 24:00:00[.000000] | 一天内的时间 | |
time [ (p) ] with time zone | timetz | 12 字节 | 00:00:00+1359 - 24:00:00-1359 | 一天内的时间, 带时区 |
timestamp [ (p) ] [ without time zone ] | 8 字节 | 4713 BC - 294,277 AD | 日期和时间 | |
timestamp [ (p) ] with time zone | timestamptz | 8 字节 | 4713 BC - 294,277 AD | 日期和时间, 带时区 |
uuid | 32 字节 | RFC 4122, ISO/IEC 9834-8:2005 标准定义的通用唯一标识(UUID) | ||
xml1 | 1 字节 + xml 大小 | 任意长度 xml | 变长,无限制 | |
txid_snapshot | 用户级事务 ID 快照 |
1 对于变长数据类型,如果大于或等于 127 字节,需要(除数据本身外)额外 4 字节的存储空间(小于 127 字节时额外只需要 1 字节存储空间)。