PostgreSQL7.0手册-用户手册-3. 数据类型
)
path 4+32n bytes [(x1,y1),...] 开放路径
polygon 4+32n bytes ((x1,y1),...) 多边形(与闭合路径相似)
circle 24 bytes <(x,y),r> 圆(圆心和半径)
一系列丰富的函数和操作符可用来进行各种几何计算,如度量,转换,旋转和计算相交等。
Point(点)
点是集合类型的基本二维构造单位。
用下面语法描述 point:
( x , y )
x , y
这里的参数是
x
是用一个浮点数表示的点的 x 坐标。
y
y 是用一个浮点数表示的点的 y 坐标。
线段
线段(lseg)是用一对点来代表的.
lseg 用下面语法声明:
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1 , x2 , y2
这里的参数是
(x1,y1), (x2,y2)
是线段的端点。
Box(方)
方是用一对对角点来表示的。
box 用下面语法声明:
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1 , x2 , y2
这里的参数是
(x1,y1), (x2,y2)
是一对对角点。
方的输出使用第一种语法.在输入时将按先左下角后右上角的顺序重新排列.你也可以输入其他的一对对角点.但输入时将按照先左下角后右上角的顺序重排并存储.
Path(路径)
路径由一系列连接的点组成.路径可能是"开放"的,也就是第一个点和最后一个点没有连接,也可能是"闭合"的,这时第一个和最后一个点连接起来.我们提供了函数 popen(p) 和 pclose(p)来强制路径是开放的还是闭合的,可以用函数 isopen(p) 和 isclosed(p) 来在查询中选择是那种.
path 用下面语法声明:
( ( x1 , y1 ) , ... , ( xn , yn ) )
[ ( x1 , y1 ) , ... , ( xn , yn ) ]
( x1 , y1 ) , ... , ( xn , yn )
( x1 , y1 , ... , xn , yn )
x1 , y1 , ... , xn , yn
这里的参数是
(x,y)
组成路径的线段的端点。前面的("[")表明一个开放的路径,而前面的("(")表明一个闭合的路径。
路径的输出使用第一种语法输出.注意 Postgres v6.1以前的版本路径的格式是由一个圆括号开始——一个"关闭标志",一个点的计数然后后面是点的列表,最后是一个圆括号结束.有一个内建的函数upgradepath 可用于从6.1前版本输出和重载路径,将其转换成新的。
Polygon(多边形)
多边形由一系列点代表.多边形可以认为与闭合路径一样,但是存储方式不一样而且有自己的一套支持过程/函数.
polygon 用下列语法声明:
( ( x1 , y1 ) , ... , ( xn , yn ) )
( x1 , y1 ) , ... , ( xn , yn )
( x1 , y1 , ... , xn , yn )
x1 , y1 , ... , xn , yn
这里的参数是
(x,y)
组成多边形边界的线段的端点。
多边形输出使用第一种语法.要注意在 Postgres 版本v6.1前,多边形的格式是一个圆括号开头,后面是点的x坐标列表,然后是点的y坐标列表,最后是一个圆括号结束.用内建的函数upgradepoly 可用于从6.1前版本输出和重载多边形,将其转换成新的。
Circle(圆)
圆由一个圆心和一个半径代表.
circle 用下面语法表示:
< ( x , y ) , r >
( ( x , y ) , r )
( x , y ) , r
x , y , r
这里的参数是
(x,y)
圆心
r
圆的半径
圆的输出用第一个格式.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
IP 版本 4 网络和主机地址
cidr 类型用于存储用 CIDR(Classless Inter-Domain Routing)符号声明的网络. inet 类型用一种形式简单的变种来表示简单的主机TCP/IP地址,并以此来存储以 CIDR 符号表示的主机和网络。
表 3-19. PostgresIP V4 类型
IPV4 类型 存储空间 描述 范围
cidr 变长 CIDR 网络 有效的 IPV4 CIDR 字块
inet 变长 网络和主机 有效的 IPV4 CIDR 字块
CIDR
cidr 类型声明一个 CIDR 网络. 说明一个无类(classless)的网络的格式是 "x.x.x.x/y" 这里 "x.x.x.x" 网络地址 而 "/y" 网络掩码中1的个数.如果 "/y" 部分没有指明,那么掩码部分用旧的有类的网络分类假设进行计算,但要求输入的数据已经包括了确定掩码的所需的所有8进制位.
下面是些例子:
表 3-20. PostgresIP 类型举例
CIDR 输入 CIDR 显示
192.168.1 192.168.1/24
192.168 192.168.0/24
128.1 128.1/16
128 128.0/16
128.1.2 128.1.2/24
10.1.2 10.1.2/24
10.1 10.1/16
10 10/8
inet
inet 类型设计用来在一个数据域里存放所有主机信息,包括其所在的CIDR风格的子网.要注意如果你想正确存放CIDR网络,你应该使用cidr 类型.inet 类型类似cidr 类型,只是它的主机部分可以是非零.可以用函数从数据域中将各种元素提取出来.
该函数的输入格式是 x.x.x.x/y 这里 x.x.x.x 是互联网主机, y 是网络掩码的位数.如果 /y 部分未填,当作/32.输出时,如果 /y 部分为 /32,将不会打印出来.只要不填"/y"部分,该类型可以直接作为主机类型使用.(??This allows the type to be used as a straight host type by just leaving of the bits part. )
--------------------------------------------------------------------------------
path 4+32n bytes [(x1,y1),...] 开放路径
polygon 4+32n bytes ((x1,y1),...) 多边形(与闭合路径相似)
circle 24 bytes <(x,y),r> 圆(圆心和半径)
一系列丰富的函数和操作符可用来进行各种几何计算,如度量,转换,旋转和计算相交等。
Point(点)
点是集合类型的基本二维构造单位。
用下面语法描述 point:
( x , y )
x , y
这里的参数是
x
是用一个浮点数表示的点的 x 坐标。
y
y 是用一个浮点数表示的点的 y 坐标。
线段
线段(lseg)是用一对点来代表的.
lseg 用下面语法声明:
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1 , x2 , y2
这里的参数是
(x1,y1), (x2,y2)
是线段的端点。
Box(方)
方是用一对对角点来表示的。
box 用下面语法声明:
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1 , x2 , y2
这里的参数是
(x1,y1), (x2,y2)
是一对对角点。
方的输出使用第一种语法.在输入时将按先左下角后右上角的顺序重新排列.你也可以输入其他的一对对角点.但输入时将按照先左下角后右上角的顺序重排并存储.
Path(路径)
路径由一系列连接的点组成.路径可能是"开放"的,也就是第一个点和最后一个点没有连接,也可能是"闭合"的,这时第一个和最后一个点连接起来.我们提供了函数 popen(p) 和 pclose(p)来强制路径是开放的还是闭合的,可以用函数 isopen(p) 和 isclosed(p) 来在查询中选择是那种.
path 用下面语法声明:
( ( x1 , y1 ) , ... , ( xn , yn ) )
[ ( x1 , y1 ) , ... , ( xn , yn ) ]
( x1 , y1 ) , ... , ( xn , yn )
( x1 , y1 , ... , xn , yn )
x1 , y1 , ... , xn , yn
这里的参数是
(x,y)
组成路径的线段的端点。前面的("[")表明一个开放的路径,而前面的("(")表明一个闭合的路径。
路径的输出使用第一种语法输出.注意 Postgres v6.1以前的版本路径的格式是由一个圆括号开始——一个"关闭标志",一个点的计数然后后面是点的列表,最后是一个圆括号结束.有一个内建的函数upgradepath 可用于从6.1前版本输出和重载路径,将其转换成新的。
Polygon(多边形)
多边形由一系列点代表.多边形可以认为与闭合路径一样,但是存储方式不一样而且有自己的一套支持过程/函数.
polygon 用下列语法声明:
( ( x1 , y1 ) , ... , ( xn , yn ) )
( x1 , y1 ) , ... , ( xn , yn )
( x1 , y1 , ... , xn , yn )
x1 , y1 , ... , xn , yn
这里的参数是
(x,y)
组成多边形边界的线段的端点。
多边形输出使用第一种语法.要注意在 Postgres 版本v6.1前,多边形的格式是一个圆括号开头,后面是点的x坐标列表,然后是点的y坐标列表,最后是一个圆括号结束.用内建的函数upgradepoly 可用于从6.1前版本输出和重载多边形,将其转换成新的。
Circle(圆)
圆由一个圆心和一个半径代表.
circle 用下面语法表示:
< ( x , y ) , r >
( ( x , y ) , r )
( x , y ) , r
x , y , r
这里的参数是
(x,y)
圆心
r
圆的半径
圆的输出用第一个格式.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
IP 版本 4 网络和主机地址
cidr 类型用于存储用 CIDR(Classless Inter-Domain Routing)符号声明的网络. inet 类型用一种形式简单的变种来表示简单的主机TCP/IP地址,并以此来存储以 CIDR 符号表示的主机和网络。
表 3-19. PostgresIP V4 类型
IPV4 类型 存储空间 描述 范围
cidr 变长 CIDR 网络 有效的 IPV4 CIDR 字块
inet 变长 网络和主机 有效的 IPV4 CIDR 字块
CIDR
cidr 类型声明一个 CIDR 网络. 说明一个无类(classless)的网络的格式是 "x.x.x.x/y" 这里 "x.x.x.x" 网络地址 而 "/y" 网络掩码中1的个数.如果 "/y" 部分没有指明,那么掩码部分用旧的有类的网络分类假设进行计算,但要求输入的数据已经包括了确定掩码的所需的所有8进制位.
下面是些例子:
表 3-20. PostgresIP 类型举例
CIDR 输入 CIDR 显示
192.168.1 192.168.1/24
192.168 192.168.0/24
128.1 128.1/16
128 128.0/16
128.1.2 128.1.2/24
10.1.2 10.1.2/24
10.1 10.1/16
10 10/8
inet
inet 类型设计用来在一个数据域里存放所有主机信息,包括其所在的CIDR风格的子网.要注意如果你想正确存放CIDR网络,你应该使用cidr 类型.inet 类型类似cidr 类型,只是它的主机部分可以是非零.可以用函数从数据域中将各种元素提取出来.
该函数的输入格式是 x.x.x.x/y 这里 x.x.x.x 是互联网主机, y 是网络掩码的位数.如果 /y 部分未填,当作/32.输出时,如果 /y 部分为 /32,将不会打印出来.只要不填"/y"部分,该类型可以直接作为主机类型使用.(??This allows the type to be used as a straight host type by just leaving of the bits part. )
--------------------------------------------------------------------------------

