数据写入

插入时使用ST_GeomFromText,也可使用GeomFromText

INSERT INTOt_customers ( lon_lat_point )VALUES( GeomFromText ('POINT(123 123)' ) )

查询数据

查询空间数据

SELECTastext ( lon_lat_point )FROM`t_customers`

空间查询函数

包含相关

MBRContains(A,B) –> A包含B

MBRWithin(A,B) –> A在B中

注意:包含关系中,所要验证的集合必须全部包含在指定的集合中。如果只有部分在其中,应该使用相交

覆盖相关

MBRCoveredBy(A,B) –> A被B覆盖

MBRCovers(A,B) –> A覆盖B

相交相关

MBRDisjoint(A,B) –> A、B不相交

MBRIntersects(A,B) –> A、B相交

接触

MBRTouches(A,B) –> A、B接触,接触的概念类似于相切

重叠

MBROverlaps(A,B) –> A、B重叠

相同

MBREquals(A,B) –> A、B相同

空间数据相关方法

点独有

开始、结束点

ST_StartPoint(A)

ST_EndPoint(A)

获取x或y

ST_X(A)

ST_Y(A)

凸包

ST_ConvexHull(A) –> 多点A的凸包面

返回矩形

ST_MakeEnvelope(A,B) –> A、B为对角点

线独有

线是否闭合

ST_IsClosed(A)

线中点数量

ST_NumPoints

线中第n个点

ST_PointN(A,n)

线长度

ST_Length(A)

生成矩形

ST_Envelope(A) –> A只有两个点,且不是水平或竖直线

面积

ST_Area(A)

面的内外边界

ST_ExteriorRing(A) –> 获取A面外环边界,返回值为LineString

ST_InteriorRingN(A,num) –> 获取A面中第num个内环边界,返回值为LineString。num从1开始。

ST_NumInteriorRings(A) –> 获取A面内环数量(5.7.8后添加ST_NumInteriorRing,效果一样)

部分geo对象可用

集合

交集

ST_Intersection(A,B)

异或

ST_SymDifference(A,B) –> A、B中独有的

并集

ST_Union(A,B)

质心

ST_Centroid(A)

距离

ST_Distance(A,B) –> A和B距离

ST_Distance_Sphere(A,B) –> A和B的球面距离

不同

ST_Difference(A,B) –> 返回A中有B中没有的

抽稀

ST_Simplify(A,mix_distance) –> 将A抽稀,简化A中两点距离小于max的值(用起来有点迷。。待研究)

缓冲区

ST_Buffer(A,length) –> 通过A几何体,生成他周边范围为length距离的面

5.7.7后可以添加策略影响缓冲区的计算,设置的语句是ST_Buffer_Strategy()

point策略

point_circle –> 点的缓冲区是一个圆(默认)

point_square –> 点的缓冲区是一个正方形,length是点到其中一边的距离

join策略

join_round –> 连接处缓冲区边界为圆弧(默认)

join_miter –> 连接处缓冲区边界为尖角

end策略

end_round –> 在结束处缓冲区为圆弧(默认)

end_flat –> 在结束处缓冲区为平坦的直线

举例生成缓冲区

ST_Buffer(point, 5, ST_Buffer_Strategy('point_square'))

ST_Buffer(line, 5, ST_Buffer_Strategy('join_miter', 10), ST_Buffer_Strategy('end_flat'))

相交

ST_Intersects(A,B) –> A和B是否相交

ST_Crosses(A,B) –> A和B是否相交(相交部分不等于A或B)

ST_Disjoint(A,B) –> A和B是否不相交

重叠

ST_Overlaps(A,B)

接触

ST_Touches(A,B)

包含

ST_Contains(A,B) –> A是否包含B

ST_Within(A,B) –> A是否在B中

验证数据是否合法

ST_IsValid(A)

ST_Validate(A)

geo对象返回格式

ST_AsText(字段名) –> 以文本形式返回

ST_AsBinary(字段名) –> 以二进制形式返回

包含、覆盖、重叠三个方法不清楚具体的区别

注意:每个方法前的MBR、ST可要可不要,在mysql5.7.6之后,不带MBR、ST的方法开始弃用

查询样例:

- 查询在指定面中的点

sql

select * from test where MBRContains(ST_GeomFromText('Polygon((0 0,0 5,5 5,5 0,0 0))'),point)

- 查询所有point点的x坐标

sql

SELECT ST_X(point) FROM test

mysql的空间查询函数_MYSQL空间查询函数相关推荐

  1. mysql concat键值对_mysql中concat函数实现数据库字段合并查询

    concat()函数是mysql中用来字符类型的字段联合查询的一个不错的函数,但尽量不要使用哦, mysql中怎么合并两个字段为一个字段呢?试了好多方法,结果还是不是我想要的 例如:select (a ...

  2. mysql的datepart函数_MySql 的查询语句中有没有Datepart函数?

    MySql   的查询语句中有没有Datepart函数? 如没有,要怎么实现? 1 楼hycao(海草)回复于 2002-11-16 20:02:46 得分 0 翻了一下资料,MySql中好象没有Da ...

  3. mysql两个表查询修改_MySQL:查询、修改(二)

    干货: 使用SELECT查询的基本语句SELECT * FROM 可以查询一个表的所有行和所有列的数据.SELECT查询的结果是一个二维表. 使用SELECT *表示查询表的所有列,使用SELECT ...

  4. mysql复杂查询教程_mysql 复杂查询

    聚合函数 函数是一个功能体,提供若干数据,产出结果-饺子机 COUNT(...)数量 SUM(...) 求和 AVG(...)平均 MAX (...)最大 MIN(...) 最小 聚合查询/分组查询 ...

  5. mysql高级查询教程_MYSQL高级查询

    实际开发中,经常需要对某些数据进行统计,比如,统计某个字段的最大值.最小值.平均值等. MySQL中,提供了一些函数来实现这些功能 聚合函数 COUNT()--返回某列的行数 SUM()--返回某列值 ...

  6. mysql数据库查询笔记_mysql笔记: 查询

    mysql笔记: 查询 查询准备 CREATE DATABASE search; use search; # 学生表(student):学号.姓名.性别.出生日期.班级 CREATE TABLE st ...

  7. 如何查mysql里有多少条数据_mysql快速查询数据库中有多少条数据

    慕尼黑的夜晚无繁华 mysql 统计 表的数量:SELECT COUNT(1) FROM information_schema.TABLES WHERE TABLE_SCHEMA = '你的数据库'; ...

  8. mysql 高级查询总结_MySQL高级查询总结

    (一)模糊查询 - 1.-like: mysql> select name as "姓名" from score where name like '张%'; +------- ...

  9. mysql单表查询实例_MySQL简单查询详解-单表查询

    MySQL简单查询详解-单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询的执行路径 一条SQL查询语句的执行过程大致如下图所示: 1>.客户端和服务端通过my ...

  10. mysql 查询重写_mysql 学习 - 查询重写规则

    条件化简 我们编写的查询语句的搜索条件本质上是一个表达式,这些表达式可能比较繁杂,或者不能高效的执行,MySQL的查询优化器会为我们简化这些表达式. 移除不必要的括号 有时候表达式里有许多无用的括号, ...

最新文章

  1. (填坑:SQL打印两次)mybatisplus+p6spy 日志打印
  2. 如何在 SAP 电商云 Spartacus UI 里新建一个页面
  3. 盘点 2017 年度最受欢迎的十大 Linux 服务器发行版
  4. java 如何执行dig 命令_dig命令简介
  5. 以太坊(ethereum)开发DApp应用的入门区块链技术教程
  6. android 焦点获取问题(手机端和TV端)
  7. java 图片 pdf_Java 添加图片到PDF
  8. React中useMemo函数【调优的不二选则】的使用及一看就会的案例(个人觉得很详细了,而且包含了很多知识点呀)
  9. 取石子c语言,取石子(一)(C语言)
  10. 开关电源变换器稳态原理分析(电感伏秒平衡及电容电荷平衡)
  11. 【Spring Cloud】新闻头条微服务项目:自媒体前后端搭建素材管理(含优化)
  12. 你会刷牙吗?图解正确刷牙方法
  13. 什么是xmlhttp
  14. C++的四种强制转换
  15. var、let、const的区别
  16. 零基础都能看懂的 STL map 详解
  17. 第4天:C语言与画面显示的练习
  18. 雷塞DMC1380的使用
  19. php屏蔽地区_屏蔽指定省份访问PHP代码
  20. Java设计模式:(一)动态代理分析 (含静态代理)

热门文章

  1. asp代码在dwearwear转换成html格式怎么转,为前端而生的编辑器Brackets及配置推荐
  2. CodeForces - 93B(贪心+vectorpairint,double +double 的精度操作
  3. 遇到一个php的错误,php初学者常见的几个错误及解决方法
  4. nginx 配置https_nginx 配置https
  5. redis list放入对象_Redis从入门到入土:详细讲解内存模型以及常用命令
  6. KendoUI--Grid api 出现的问题
  7. abcde依次进入一个队列_数据结构与算法 | 一文掌握队列Queue(真题讲解)
  8. unity 导入gltf_Unity3D使用glTF格式三维文件,glTF在unity中如何呈现,glTF导入unity
  9. git 修改commit_结合IDEA与命令行,解决常用git操作与特殊情况的最佳实践
  10. python 计时器_Python上下文管理器的魔力