层次数据( hierarchy data)
新增的 Hierarchyid 数据类型及其嵌入函数 推动数据库进入了一种前所未有的功能境界.
Hierarchyid 是一种特殊的数据类型,为表示层次结构(通常是树形)中的单个节点 而进行优化的. 这里真正的威力是 它能够
分析层次祖先(父子关系)的概念,理解深度和兄弟节点的概念.
理解深度和输出
深度:层次的节点深度(深度等级) 是 基于 直接或节点的祖先节点的.
那么这样就会产生一个基于零的 集合--即根节点为0级,直接后代为1级,一次类推……
输出:
是指 某个父节点 上有多少个子节点. 可以任务 输出控制着层次的宽度.
HierarchyID数据类型结构 (http://msdn.microsoft.com/en-us/library/bb677290(v=sql.105))
HierarchyID数据类型在 内部是以 节点的变长二进制表示法存储的.
方法:http://msdn.microsoft.com/en-us/library/bb677193(v=sql.105)
空间数据
平面数据类型---Geometry 数据类型
下面看 space表
坐标列的数据类型为 geometry , 下面为 此表插入2条数据
insert into [space] values(geometry::STGeomFromText('LINESTRING(-1 1,1 1,2 2)',0)) insert into [space] values('LINESTRING(-3 3,3 3,3 -3,-3 -3,-3 3)')
显示了两种不同的插入数据的方式.
查看表中的数据,
coordinate列存着 一堆二进制数据,下面通过 一个函数可以 显示他的真面目.
select s.coordinate,s.coordinate.STAsText() from [space] s where id=7
结果如下:
那么下面看 图形:
下面再插入一条数据, 用 polygon代替 linestring ,看看效果如何:
insert into [space] values('polygon((-3 3,3 3,3 -3,-3 -3,-3 3))')
变成了一个 图形,而不是线了。
测量数据描述的实现-----GEOGRAPHY类型
实现测量 ,圆地球数据的类型被称为GEOGRAPHY.
该类型也接受 之前讨论过的 几何类型.不过他还应用了半球概念.