数据类型#

OushuDB 拥有丰富的内置数据类型,用户还可以通过 CREATE TYPE 自定义新的类型。

下表显示了所有内置的泛用数据类型,在”别名”列里大多数都是因历史原因在 OushuDB 内部使用的可选名字。

表. 数据类型

名字

别名

描述

MAGMA

ORC

Hudi

ROW

bigint

int8

有符号8字节整数

Y

Y

Y

Y

bigserial

serial8

自增8字节整数

Y

Y

Y

Y

bit [(n)]

定长位串

N

N

N

Y

bit varying [(n)]

varbit

可变长位串

N

N

N

Y

boolean

bool

逻辑布尔值(真/假)

Y

Y

Y

Y

box

平面上的矩形

N

N

N

Y

bytea

二进制数据(“字节数组”)

Y

Y

Y

Y

character varying [(n)]

varchar [(n)]

可变长字符串

Y

Y

Y

Y

character [(n)]

char [(n)]

定长字符串

Y

Y

Y

Y

cidr

IPv4 或 IPv6 网络地址

N

N

N

Y

circle

平面上的圆

N

N

N

Y

date

日历日期(年, 月, 日)

Y

Y

Y

Y

double precision

float8

双精度浮点数(8字节)

Y

Y

Y

Y

inet

IPv4 或 IPv6 主机地址

N

N

N

Y

integer

int, int4

有符号 4 字节整数

Y

Y

Y

Y

interval [(p)]

时间间隔

N

N

N

Y

lseg

平面上的线段

N

N

N

Y

macaddr

MAC (Media Access Control)地址

N

N

N

Y

money

货币金额

N

N

N

Y

numeric [(p,s)]

decimal [(p,s)]

可选精度的准确数值数据类型

Y

Y

Y

Y

path

平面上的几何路径

N

N

N

Y

point

平面上的点

N

N

N

Y

polygon

平面上的封闭几何路径

N

N

N

Y

real

float4

单精度浮点数(4 字节)

Y

Y

Y

Y

smallint

int2

有符号 2 字节整数

Y

Y

Y

Y

serial

serial4

自增 4 字节整数

Y

Y

Y

Y

text

可变长字符串

Y

Y

Y

Y

time [(p)]

[without time zone]

一天中的时刻(无时区)

Y

Y

Y

Y

time [(p)]

with time zone

timetz

一天中的时刻,含时区

N

Y

Y

Y

timestamp [(p)]

[without time zone]

日期与时刻(无时区)

Y

Y

Y

Y

timestamp [(p)]

with time zone

timestamptz

日期与时刻,含时区

N

Y

Y

Y

兼容性

下列类型(或那样的拼写)是SQL规范声明的: bit, bit varying, boolean, char, character varying, character, varchar, date, double precision, integer, interval, numeric, decimal, real, smallint, time (with or without time zone), timestamp (with or without time zone).

每种数据类型都有一个由其输入和输出函数决定的外部表现形式。 许多内置的类型有明显的外部格式。不过,一些数据类型要么是OushuDB 所特有的,比如几何路径,要么是有若干种不同的格式,比如日期和时间类型。 有些输入和输出函数是不可逆的,即与原始输入相比,输出函数的结果可能会丢失精度。