SQL SERVER中的geometry类型
转载于SQL Server中的geometry类型 - koubeisi - 博客园 (cnblogs.com)
SQL Server中的geometry类型
最近在工作中用到了SQL Server数据库保存点的坐标,然后研究了该类型。
关于该类型的资料主要来源官方。如果想了解更多资料访问SQL Server官方
1. 什么是geometry类型?
官方说法
平面空间数据类型 geometry
在 SQL Server 中作为公共语言运行时 (CLR) 数据类型实现。 此类型表示欧几里得(平面)坐标系中的数据。
SQL Server 支持 geometry
空间数据类型的一组方法。 这些方法包括开放地理空间信息联盟 (OGC) 标准和对该标准的一组 Microsoft 扩展所定义的 geometry
方法。
通俗的说
geometry
是平面空间数据类型,也就是说通过该类型可以保存平面坐标系(学过是x、y轴坐标系都应该明白什么是平面坐标系)上的点、线、多边形。
2. 从示例说起
2.1 关于插入
我们创建一个表,该表中只有两个字段:
-- 创建一个表
create table T_Geometry(
id int not null primary key,
geo geometry not null
);
1. 插入一个点(POINT):
-- 插入一个点
insert into T_Geometry(id,geo) values(1,geometry::STGeomFromText('POINT (20 180)', 0));
2. 插入一条线(LINESTRING):
-- 插入一条线
insert into T_Geometry(id,geo) values(2,geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0));
3. 插入一个多边形(POLYGON):
-- 插入一个多边形
insert into T_Geometry(id,geo) values(3,geometry::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 0));
查询结果:
select * from T_Geometry;
我们看到,直接查询出来的结果是二进制数据,以十六进制显示的,行2和行3的数据没有显示完……
我们想要查看出来的数据和添加进去时一样直观,显然,这不是我们要的结果。
2.2 关于查询
SQL Server给我们提供了一些函数,方便我们更加直观的显示查询结果。我将列出几个常用的函数,方面认识和学习,更多函数请查阅官方文档。
1. 查询转换字符串
使用STAsText()
,返回类型:nvarchar(max)
-- 查询转换字符串
select id,geo.STAsText() AS geo from T_Geometry;
或者用另外一个函数ToString()
,返回类型:nvarchar(max)
select id,geo.ToString() AS geo from T_Geometry;
2. 查询转换面积
使用STArea()
,返回类型:float
-- 查询转换面积,非多边形查询结果为0
select geo.STArea() from T_Geometry;
3. 结束
相信应该很清楚的明白了SQL Server geometry类型的插入和查询的方法了吧。
原文地址:https://www.cnblogs.com/zmy2020/p/15013957.html
- ActiveMQ笔记(1):编译、安装、示例代码
- centos ssh终端下高亮显示git分支名
- Django ORM模型:想说爱你不容易
- IE7下元素的 'padding-top' 遇到 'clear' 特性在某些情况下复制到 'padding-bottom'
- IE7下元素的 'padding-top' 遇到 'clear' 特性在某些情况下复制到 'padding-bottom'
- ARM处理器:开放者的逆袭
- 从5个方面对比微信小程序和App
- ActiveMQ笔记(7):如何清理无效的延时消息?
- JS魔法堂:再识Bitwise Operation & Bitwise Shift
- Hadoop(十三)分析MapReduce程序
- mac机上搭建php56/nginx 1.8.x/thinkphp 3.2.x/gearman扩展/seaslog扩展/redis扩展环境
- 基础野:细说无符号整数
- Ubuntu12.04安装QQ for Linux
- 树莓派:最好的安排
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解