PostgreSQL中Range类型

    Range类型是 PostgreSQL中特有的数据类型,可以进行范围快速搜索。

1.内置Range类型

    PostgreSQL中内置了一些常用的 Range类型,这些类型可以直接使用。

类型名称 类型作用
int4range 4字节整数的范围类型
int8range 8字节大整数的范围类型
numrange numeric的范围类型
daterange 日期的范围类型

2.自定义Range类型

    自定义Range类型的语法如下:

CREATE TYPE name AS RANGE (
  subtype=subtype_name
  [,subtype_opclass = subtype_operator_class]
  [,collation = collation]
  [,canonical = canonical_function]
  [,subtype_diff = subtype_diff_function]
  );

    (1) subtype=subtype_name 指定子类型;

    (2)  subtype_opclass = subtype_operator_class 指定子类型的操作符;

    (3)  collation = collation指定排序规则; 

    (4) canonical = canonical_function 创建稀疏的Range类型;

    (5) subtype_diff = subtype_diff_function 定义子类型的差别函数;

3.Range类型输入输出

    括号()表示范围内不包含此元素,中括号[]表示范围内包括此元素。

3.1 int4range

    稀疏的Range类型,内部存储格式为“[begin,end)”。 “empty”表示空,即范围内不包含任何元素。

select '[0,6]'::int4range;

    

扫描二维码关注公众号,回复: 3733718 查看本文章
select '(0,6)'::int4range;

    

select 'empty'::int4range;

  

3.2 numrange

    连续类型的Range,内部是精确存储的。

select '[0,6]'::numrange;

  

select '(0,6)'::numrange;

  

3.3 极值

    ‘[1,)’表示从1到int4可以表示的最大数值。

select '[1,)'::int4range;

    '[,1)' 表示从int4可以表示的最小数值到1。

select '[,1)'::int4range;

     ‘[1,)’表示从1到无穷大。

select '[1,)'::numrange;

    '[,1)' 表示从负无穷到1。

select '[,1)'::numrange;

猜你喜欢

转载自blog.csdn.net/liyazhen2011/article/details/83038723