mysql对GIS空间数据的支持,包括创建空间索引

CREATE TABLE tb_geo(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(128) NOT NULL,
pnt POINT NOT NULL,
SPATIAL INDEX `spatIdx` (`pnt`) <!-- 1、创建表时创建空间索引 -->
)ENGINE=MYISAM DEFAULT CHARSET=utf8; <!-- 数据库表引擎设置为 MYISAM-->

<!-- 2、已经存在的表上创建索引 -->
<!-- ALTER TABLE tb_geo ADD SPATIAL INDEX spatIdx(pnt); -->

<!-- 3、使用CREATE INDEX语句创建索引,语法如下 -->
<!-- CREATE SPATIAL INDEX spatIdx ON t7(g) -->

<!-- 删除索引 -->
<!-- ALTER TABLE book DROP INDEX UniqidIdx -->

<!-- 表描述信息-->
DESCRIBE tb_geo;

<!-- 插入数据 -->
INSERT INTO `tb_geo` VALUES(
NULL,
‘a test string‘,
POINTFROMTEXT(‘POINT(15 20)‘));

<!-- 查询 -->
SELECT id,NAME,ASTEXT(pnt) FROM tb_geo;

SELECT id,NAME,X(pnt),Y(pnt) FROM tb_geo;

<!-- 空间查询示例 -->
SELECT ASTEXT(pnt) FROM tb_geo WHERE MBRWITHIN(pnt,GEOMFROMTEXT(‘Polygon((0 0,0 30,30 30,30 0,0 0))‘));

<!-- 删除表 -->
DROP TABLE tb_geo;

<!-- 几种空间对象比较方法 -->
SET @g1 = GEOMFROMTEXT(‘Polygon((0 0,0 3,3 3,3 0,0 0))‘);
SET @g2 = GEOMFROMTEXT(‘Point(1 1)‘);

<!-- 注意:比较的都是外包络几何类型对象 -->
<!-- 包含 -->
SELECT MBRCONTAINS(@g1,@g2), MBRCONTAINS(@g2,@g1), MBRCONTAINS(@g1,@g1);
<!-- 被包含 -->
SELECT MBRWITHIN(@g2,@g1),MBRWITHIN(@g1,@g2);
<!-- 不相交 -->
SELECT MBRDISJOINT(@g1,@g2);
<!-- 相等 -->
SELECT MBREQUAL(@g1,@g2);
<!-- 相交 -->
SELECT MBRINTERSECTS(@g1,@g2);
<!-- 重叠 -->
SELECT MBROVERLAPS(@g1,@g2);
<!-- 相切 -->
SELECT MBRTOUCHES(@g1,@g2);
时间: 2024-11-05 21:45:54

mysql对GIS空间数据的支持,包括创建空间索引的相关文章

[转]MySQL数据库引擎介绍、区别、创建和性能测试的深入分析

本篇文章是对MySQL数据库引擎介绍.区别.创建和性能测试进行了详细的分析介绍,需要的朋友参考下 数据库引擎介绍 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型INNODB和BERKLEY(BDB),也常常可以使用.如果技术高超,还可以使用MySQL+API自己做一个引擎.下面介绍几种数据库引擎:  ISAM:ISAM是一个定义明确且历经时间考验的数

MySQL 入门(五)—— 表的创建、修改和删除

表是DB存储数据的基本单位,一个表包含若干个字段或记录.表的操作包括创建.修改和删除. 1.创建表 创建表即在已存在的数据库中创立新表.在使用USE语句选择具体数据库后,可以使用它SQL语句创建表 其中,属性名指表中字段的名称,数据类型即对应字段的数据类型,完整性约束条件指对应字段的某些特殊约束条件. MySQL中基本的完整性约束条件有 1.1 设置表的主键 主键是表的一个特殊字段,该字段能唯一地表示该表中的每条信息,即主键如同表中记录的身份证.主键的主要目的在于帮助MySQL以最快的速度查找表

apache/mysql/php编译安装及支持xcache和fastcgi方式运行

一.编译安装apache     1.安装环境:yum install gcc gcc-c++ openssl-devel libtool -y     2.安装apr.apr-util及pcre         tar jxf apr-1.5.1.tar.bz2         cd apr-1.5.1         ./configure --prefix=/usr/local/apr         make && make install              tar jxf

JDBC访问Oracle数据库例子源代码,包括创建table,删除table,插入记录,删除记录,查询记录等

package com.cb; public class SMSInfo { public static String ITEMINDEX = "sms_index"; public static String ITEMTO = "sms_to"; public static String ITEMFROM = "sms_from"; public static String ITEMMSG = "sms_msg"; publ

mysql全备脚本升级版,支持多台主机,多个数据库

此脚是对上午写的脚本的升级,(前一版地址http://www.sql8.net/a/course/shujuku/Mysql/2014/0815/30340.html) 针对同事多个数据库且数据帐号,密码,主机均可能不相同的情况改写 改写后,需要两个脚本协同完成. 一为批量执行脚本 batch.sh 二为数据备份脚本databak.sh *******************************批量执行脚本 batch.sh**********************************

Navicat for MySQL界面下如何用SQL语句创建表?

Navicat for MySQL界面下如何用SQL语句创建表?下面小编就告诉你.首先打开 Navicat,选择一个数据库,点击"查询",在右侧点击"创建查询",输入SQL语句,点击"执行"就可以了,示例SQL: CREATE TABLE `test`.`users` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `age` int(10) DEF

【Mysql】常用指令之——用户操作(创建,授权,修改,删除)

Mysql中的用户 user 每一个user都对应了不同的用户地址和权限 创建Mysql用户共有三种方式1.create user 2.grant 3.操作mysql.user表 1.CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 例子: CREATE USER 'aa'@'localhost' IDENTIFIED BY '123456'; CREATE USER 'aa'@'192.168.1.101_' IDENDIFIED

无法远程连接mysql,连接后也没有权限创建数据库

问题现象:无法远程连接mysql,连接后也没有权限创建数据库 问题原因: MySql-Server 出于安全方面考虑只允许本机(localhost, 127.0.0.1)来连接访问. 这对于 Web-Server 与 MySql-Server 都在同一台服务器上的网站架构来说是没有问题的. 但随着网站流量的增加, 后期服务器架构可能会将 Web-Server 与 MySql-Server 分别放在独立的服务器上, 以便得到更大性能的提升, 此时 MySql-Server 就要修改成允许 Web-

MySQL 5.7 CLUSTER NDB 7.5 创建磁盘表 undo logfile group tablespace 内存表修改为磁盘表

-- MySQL 5.7 CLUSTER NDB 7.5 -- 创建undo logfile group create logfile group lg_1        ADD UNDOFILE 'undo_1.log'        INITIAL_SIZE 1024M        undo_buffer_size 8M        ENGINE NDBCLUSTER;        -- 增加 logfile ALTER logfile group lg_1         ADD U