实验三 空间查询与统计.docx

上传人:b****3 文档编号:2180495 上传时间:2022-10-27 格式:DOCX 页数:23 大小:265.54KB
下载 相关 举报
实验三 空间查询与统计.docx_第1页
第1页 / 共23页
实验三 空间查询与统计.docx_第2页
第2页 / 共23页
实验三 空间查询与统计.docx_第3页
第3页 / 共23页
实验三 空间查询与统计.docx_第4页
第4页 / 共23页
实验三 空间查询与统计.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

实验三 空间查询与统计.docx

《实验三 空间查询与统计.docx》由会员分享,可在线阅读,更多相关《实验三 空间查询与统计.docx(23页珍藏版)》请在冰豆网上搜索。

实验三 空间查询与统计.docx

实验三空间查询与统计

实验三查询与统计

1.空间数据的查询和分析在GIS工程项目中处于核心地位,在使用GIS数据时,我们经常需要从已有的数据中查询出部分满足特定条件的数据。

2.GIS中的查询类型一般可以分为以下三种:

单纯的属性查询、单纯的空间查询、以及与空间位置和属性同时相关的综合查询。

3.其中,单纯的属性查询在SuperMap中可以通过SQL查询来实现;后两种查询可以通过SuperMap中的空间查询功能来实现。

SQL查询属性查询

SQL查询是指查询的条件只与空间地物的属性相关,而与地物的地理位置无关的查询。

这一类的查询通常有“中国人口大于5000万的省(直辖市、自治区)有哪些?

”、“河北省粮食产量超100万的县有哪些?

”、“江苏省面积大于100平方千米的湖泊有哪些?

”、“北京市三星级以上的宾馆有哪些?

”等等。

SQL表达式的语法为“Select…(需要输出的字段名)from…(数据集名)where…(查询条件)(orderby…ascending/descending)(结果排序字段,可选)”。

其中Select,from,orderby等后面的参数都可以直接在SQL对话框中的列表或下拉列表中选择,而查询条件(Where–Clause语句)是需要我们自己构建的。

1.对数值的查询

对数值的查询可以使用=,<>,>,<,<=,>=,Between等等。

例如:

World_countries.Pop_1994Between10000000and20000000查询的是pop_1994字段值(1994年人口)在1000万到2000万之间的记录。

2.模糊查询

模糊查询使用like,而且不同类型的数据源使用的匹配符不尽相同。

例如:

(1)部分匹配,使用“*”(注,数据库型数据源中的通配符为%)

World_countries.CAPITALLike"a*"(or’a*’)查询的是World_countries数据集中CAPITAL字段中以a打头的那些国家。

(2)完全匹配

World_countries.CAPITALLike“Beijing”(or'Beijing')查询的是World_countries数据集中CAPITAL字段值为Beijing的国家。

(3)单字匹配,使用“?

”(注,数据库型数据源中的通配符为_)

World_countries.ISO_2Like"A?

"(or‘A?

’)查询的是World_countries数据集中ISO_2字段值为A后面仅加一个字符的国家。

3.查询特定值

使用in,确定表达式的值是否等于指定列表内若干值中的任意一个值。

例如:

World_countries.ISO_2in('AD','BS','PH')查询的是World_countries数据集中ISO_2字段值为AD,BS,PH的一个或几个国家。

World_countries.SmIDin(1,4)查询的是World_countries数据集中SmID字段值为1,4的国家。

注,对于字符型字段的查询需要将查询值使用单引号(’’)或者双引号(””)括起来,而数值型字段的查询不需要。

4.查询某个字段值是否为空

使用isNULL(isnotNULL)

例如:

World_countries.ISO_2isNULL查询的是World_countries数据集中ISO_2字段值为空的那些国家。

(有可能这些国家该字段忘记被赋值了。

5.通过构造语句进行查询。

例如:

World_countries.SmArea>World_countries.SmPerimeter*50000查询的是World_countries数据集中面积大于周长乘以50000的那些国家。

当然,在设置查询语句的时候,我们也可以使用()设置其优先级。

例如:

:

World_countries.POP_1994/(World_countries.SmArea/1000000)>500查询的是World_countries数据集中,94年的时候每平方公里(因为属性表中Area单位为米,所以使用World_countries.SmArea/1000000将其换算为平方公里)土地上人口大于500的国家。

6.组合语句

使用and,将两个或者多个查询语句组合起来。

例如:

World_countries.SmArea>5000000000000ANDWorld_countries.POP_1994<100000000查询的是国土面积大于500万平方公里(上面的数值已经换算成平方米)并且94年人口小于1亿的国家。

7.比较运算符在字符型字段中的应用比较运算符,如>,<,>=,<=,<>等等。

例如:

World_countries.NAME>='N'查询的是World_countries数据集中NAME字段值的首字母在N到Z之间的那些国家。

8.日期型字段的查询

例如:

World_countries.dat=#08/10/94#查询的是World_countries数据集中dat字段为1994-08-10的记录,即1994-08-10当天的记录。

World_countries.datBetween#01/01/94#and#12/31/94#查询的是World_countries数据集中1994年全年的记录。

运算符号

运算符

含义

举例

算术运算符

加法

RENT+UTILITIES<=800

-

减法

POP_2002-POP_1994

*

乘法

DENSITY*AREA>5000000

/

除法

VALUE/POP=50000

%

取模

VALUE1%VALUE2

比较运算符

等于

CODE=100

>

大于

POP_2002>5000000

<

小于

INDUST_GROWTH<0

>=

大于等于

RENT+UTILITIES>=800

<=

小于等于

RENT+UTILITIES<=800

<>

不等于

VALUE1<>100

非,与“>”、“<”联合使用成!

<(不小于)、!

>(不大于)

VALUE1!

>100VALUE1!

<100

逻辑运算符

AND

连结两个布尔型表达式并当两个表达式都为TRUE时返回TRUE

CODE=100ANDVALUE>20000

NOT

对任何其它布尔运算符的值取反

NOTIsBACHELOR

OR

将两个条件结合起来,如果两个布尔表达式中的一个为TRUE,那么就为TRUE

SALES>20000ORORDERS>20000

In

如果操作数等于表达式列表中的一个,那么就为TRUE

PROVINCEIn("GUANGDONG")

Between

确定一个表达式在某个范围之内,那么就为TRUE。

一般与AND同时使用

SALESBetween4095AND20000

Like

确定给定的字符串完全与指定的模式匹配

COUNTRYLike"CANADA"

其他

IsNULL

确定一个表达式是为NULL,主要是文本型字段

CONTINENTIsNULL

IsTRUE

确定一个表达式为True,主要针对布尔型字段

——

IsFALSE

确定一个表达式为False,主要是布尔型字段

——

聚合函数

聚合函数

中文名称

含义

举例

Avg

平均值(均值)

AVG([ALL|DISTINCT]expression)

得到一组中所有记录的〈表达式〉平均值。

空值将被忽略。

Avg(amount)asAverage,Count(type)

Count

计数

COUNT({[ALL|DISTINCT]expression]|*})

返回分组后各组中记录的总数。

Avg(amount)asAverage,Count(*)

Max

最大值

找出一组中所有记录的〈表达式〉最大值。

Count(Code),Max(Length)

Min

最小值

找出一组中所有记录的〈表达式〉最小值。

Count(Code),Min(Length)

Sum

求和(总和)

计算一组中所有记录的〈表达式〉总计值。

Customer,Sum(AMOUNT)

Stdev

样本标准差(标准差)

给定表达式中所有值的统计标准偏差。

Stdev(expression)

Stdevp

总体标准差

返回给定表达式中所有值的填充统计标准偏差。

Stdevp(expression)

Var

样本方差(方差)

返回给定表达式中所有值的统计方差。

Var(expression)

Varp

总体方差

返回给定表达式中所有值的填充的统计方差。

Varp(expression)

数学函数

数学函数

含义

举例

Abs

返回给定数字表达式的绝对值。

Abs(data)

Acos

返回以弧度表示的角度值,该角度值的余弦为给定的float表达式;本函数亦称反余弦。

Acos(data)

Asin

返回以弧度表示的角度值,该角度值的正弦为给定的float表达式;亦称反正弦。

Asin(data)

Atan

返回以弧度表示的角度值,该角度值的正切为给定的float表达式;亦称反正切。

Atan(data)

Atn2

返回以弧度表示的角度值,该角度值的正切介于两个给定的float表达式之间;亦称反正切。

Atn2(data1,data2)

Aatn2

返回以弧度表示的角度值,该角度值的正切介于两个给定的float表达式之间;亦称反正切。

Atan2(data1,data2)

Ceiling

返回大于或等于所给数字表达式的最小整数。

Ceiling(data)

Cos

返回给定表达式中给定角度(以弧度为单位)的三角余弦值。

Cos(angle)

cot

返回给定float表达式中指定角度(以弧度为单位)的三角余切值。

Cot(angle)

Degrees

当给出以弧度为单位的角度时,返回相应的以度数为单位的角度。

Degrees(angle)

Exp

返回所给的float表达式的指数值。

Exp(data)

Floor

返回小于或等于所给数字表达式的最大整数。

FLOOR(23.45),

Log

对于SQL数据源,返回给定float表达式的自然对数;对于Oracle数据源,返回函数格式为Log(n,m)的以m为底,n的对数,

Log(data),Log(n,m)

Log10

返回给定float表达式的以10为底的对数。

Log10(data)

PI

返回PI的常量值。

PI()

Power

返回给定表达式乘指定次方的值

Power(data)

Radians

对于在数字表达式中输入的度数值返回弧度值。

Radians(angle)

Rand

返回0到1之间的随机float值。

Rand(data)

Sign

返回给定表达式的正(+1)、零(0)或负(-1)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1