前端之家收集整理的这篇文章主要介绍了
PostgreSQL学习篇9.16 range类型,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
第一次见。
range类型,可以进行范围快速搜索。用于表示范围,而范围底下的基本类型成为range类型的subtype。
range类型:
int4range:4字节整数的范围类型
int8range:8字节整数的范围类型
numrange:numeric的范围类型
tsrange:无时区的时间戳范围类型
tstzrange:有时区的时间戳范围类型
datarange:日期的范围类型
还可以使用create type创建一些range类型:
create type tname as range(
subtype=subtype --指定子类型
[,subtype_opclass=subtype_operation_class] --指定子类型的操作符
[,collation = collation] ---指定排序规则
'(' ')' 表示范围内不包括此元素,'[' ']' 表示范围内包括此元素。如果是稀疏类型的range,其内部存储格式为"'[v1,v2)'"。empty表示空,即范围内不包括任何东西。
postgres=# select '(0,6)'::int4range;
int4range
-----------
[1,6)
(1 row)
postgres=# select '[0,6)'::int4range;
int4range
-----------
[0,6]'::int4range;
int4range
-----------
[0,7)
(1 row)
postgres=# select 'empty'::int4range;
int4range
-----------
empty
(1 row)
postgres=# select '(0,6)'::numrange;
numrange
----------
(0,6)'::numrange;
numrange
----------
[0,6]'::numrange;
numrange
----------
[0,6]
(1 row)
postgres=# select '(0,6]'::numrange;
numrange
----------
(0,6]
(1 row)
postgres=# select 'empty'::numrange;
numrange
----------
empty
(1 row)
postgres=# select int4range(1,10,'[)');
int4range
-----------
[1,10)
(1 row)