SQL Servr 2008空间数据应用系列五:数据表中使用空间数据类型

简介:

 通过前面几篇文章介绍了关于SQL Server 2008中空间数据类型相关的知识点,了解到了什么是空间数据,什么是空间数据类型,如何在SQL中变成定义基础的空间对象实例,这些知识点主要是为了后续学习空间数据应用和做地理空间分析做准备。本篇将继续介绍SQL Server 2008中空间数据类型的应用知识点,主要介绍如何在数据表中使用空间数据类型列,如何存储空间数据到空间数据类型,以及如何查询、预览空间数据等相关知识点。

 

  选择使用空间数据类型,意味着必须在SQL数据表中添加空间数据类型列以存储空间数据。通常有两种情况:

  1、创建一张带有空间数据类型的新表。

  2、向已有数据表中添加空间数据类型列字段。

 

一、创建空间数据类型新表

  创建一个带有空间数据类型的新表和创建普通的表基本没有区别,唯一的不同就是使用了空间数据类型字段。以下SQL演示了创建带有空间数据类型的数据表:

CREATE   TABLE   [ Cities ]  (
    
[ ID ]   [ int ]   IDENTITY ( 1 , 1 NOT   NULL ,
    
[ CityName ]   [ varchar ] ( 255 NOT   NULL ,
    
[ CityLocation ]   [ geometry ]   NOT   NULL
)
GO

 

二、添加空间数据类型到已有表

  向已有表中添加空间数据类型列和普通表添加新的列是一样的,同样使用alter table  xxx  add  yyy datatype命令完成。下面代码演示了向刚创建的新表添加一空间数据类型字段:

-- 向已有表中添加空间数据类型字段
ALTER   TABLE   [ Cities ]
    
ADD  geo geography
GO

 

三、为空间数据类型列制定空间引用标识(SRID)

  任何空间数据类型字段都可以向其指派相应的空间引用标识(SRID),部分空间数据类型字段还是必须制定SRID的。实现对空间数据类型列指派SRID也非常简单,SQL提供了指派命令来完成,下面的SQL命令演示了给上面新添加的空间数据类型指派SRID的实现。

-- 指派空间数据类型列的SRID
ALTER   TABLE   [ Cities ]  
    
ADD   CONSTRAINT   [ enforce_srid_geographycolumn ]  
    
CHECK  (geo.STSrid  =   4326 )
GO

 

四、插入空间数据到空间数据类型字段

  插入数据导表格中同样使用“insert into table.....”语法实现,不同的是插入空间数据的时候需要对数据进行格式化处理才能被成功的插入到空间数据类型列。针对于两种(geography和geometry)空间数据类型,系统提供了专门的空间格式化语法来处理,比如通过将WKT文本插入到空间数据列,可以使用geometry::STGeomFromText()或者geography::STGeomFromText()函数来对WKT文本进行空间数据类型格式转化。

insert   into  Cities 
    (CityName,CityLocation) 
        
values  
            (
' chongqing ' ,geometry::STGeomFromText( ' POLYGON ((107.04352 28.870554, 107.043891 28.873231......) ' , 4326 ));

 

  注:上面SQL代码块实现了将重庆市区区域WKT格式的空间数据插入到Cities表的CityLocation字段中,由于WKT内用太长,代码段中对其进行了截取。

 

四、查询空间数据类型数据

  查询空间数据和普通的数据查询几乎没有区别,同样使用“select xxx from table where x=y”的方式实现数据查询。下面SQL命令演示了查询刚刚插入的数据记录:

select   *   from  Cities;

      

  同样可以使用系统函数将查询出的空间结果转化为WKT文本格式输出,下面的SQL命令详细演示了改功能函数的使用:

-- 转换空间数据为WKT文本
DECLARE   @chongqing  geometry;
select   @chongqing   =  CityLocation  from  Cities  where  ID = 1 ;
select   @chongqing   as  重庆市;
select   @chongqing .ToString()  as  重庆市;
select   @chongqing .STAsText()  as  重庆市;    -- WKT

 

         





本文转自 beniao 51CTO博客,原文链接:http://blog.51cto.com/beniao/498471,如需转载请自行联系原作者

目录
相关文章
|
23天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL隐式游标:数据的“自动导游”与“轻松之旅”
【4月更文挑战第19天】Oracle PL/SQL中的隐式游标是自动管理的数据导航工具,简化编程工作,尤其适用于简单查询和DML操作。它自动处理数据访问,提供高效、简洁的代码,但不适用于复杂场景。显式游标在需要精细控制时更有优势。了解并适时使用隐式游标,能提升数据处理效率,让开发更加轻松。
|
1天前
|
SQL 关系型数据库 MySQL
|
2天前
|
SQL 数据库
Sql中如何添加数据
Sql中如何添加数据
5 0
|
6天前
|
SQL API 数据库
在Python中获取筛选后的SQL数据行数
在Python中获取筛选后的SQL数据行数
17 1
|
6天前
|
SQL 分布式计算 数据可视化
数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
|
12天前
|
SQL 机器学习/深度学习 数据采集
数据分享|SQL Server、Visual Studio、tableau对信贷风险数据ETL分析、数据立方体构建可视化
数据分享|SQL Server、Visual Studio、tableau对信贷风险数据ETL分析、数据立方体构建可视化
|
13天前
|
SQL Oracle 关系型数据库
利用 SQL 注入提取数据方法总结
利用 SQL 注入提取数据方法总结
|
13天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之在DataWorks的数据开发模式中,在presql和postsql中支持执行多条SQL语句如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
42 1
|
14天前
|
SQL 机器学习/深度学习 算法
SQL SERVER ANALYSIS SERVICES决策树、聚类、关联规则挖掘分析电商购物网站的用户行为数据
SQL SERVER ANALYSIS SERVICES决策树、聚类、关联规则挖掘分析电商购物网站的用户行为数据
|
14天前
|
SQL 机器学习/深度学习 数据挖掘
SQL Server Analysis Services数据挖掘聚类分析职业、地区、餐饮消费水平数据
SQL Server Analysis Services数据挖掘聚类分析职业、地区、餐饮消费水平数据