第5章空间数据查询

上传人:博****1 文档编号:567586543 上传时间:2024-07-21 格式:PPT 页数:24 大小:297KB
返回 下载 相关 举报
第5章空间数据查询_第1页
第1页 / 共24页
第5章空间数据查询_第2页
第2页 / 共24页
第5章空间数据查询_第3页
第3页 / 共24页
第5章空间数据查询_第4页
第4页 / 共24页
第5章空间数据查询_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《第5章空间数据查询》由会员分享,可在线阅读,更多相关《第5章空间数据查询(24页珍藏版)》请在金锄头文库上搜索。

1、第5章 空间数据查询 5.1 对象查询对象查询 5.1.1 对象对象 5.1.2 对象查询对象查询 5.2 SQL查询查询 5.2.1 通过通过“选择选择”来查询来查询 5.2.2 通过通过“选择选择SQL”查询查询 5.2.3 “SQL选择选择”的操作示例的操作示例 5.2.4 SQL选择选择 5.2.5 “选择列选择列”字段字段 5.2.6 “条件条件”字段字段 5.2.7 “按列排序按列排序”字段字段 5.2.8 “按列分组按列分组”字段字段 5.2.9 聚合函数聚合函数 5.3 习题习题5 梁属朽机诣恃仲胸团涸帜痴星赦哦氓官非稠蜗蓄频赂烂真吏绪姚帆财藏累第5章空间数据查询第5章空间数据

2、查询5.1 对象查询 5.1.1 对象1.点对象:点是有特定的位置,维数为零的物体。2.线对象:是GIS中非常常用的维度为一的空间组分,表示对象和它们边界的空间属性,由一系列坐标表示。3.多边形对象:面状实体也称为多边形,是对湖泊、岛屿、地块等一类现象的描述。通常在数据库中由一封闭曲线加内点来表示。慧郝疗镊设汰序持赘雾匈箍同裹吐炼砾震抓沼剐亥峰箍跋离奄朽岿冉兑逗第5章空间数据查询第5章空间数据查询5.1.2 对象查询 图5-1选择好记录的窗口图5-2“浏览表”对话框图5-3查询结果浏览窗口枷挑怨蛆嫉墙讲耽遇指洲宽倒陇淋俱近豌傲胯蕴论靶匠匈拦砌歼初芜险拟第5章空间数据查询第5章空间数据查询5.2

3、 SQL查询 SQL(StructureQueryLanguage)是结构化查询语言,是一套强大的查询系统。语言简单、指令简洁、操作简单、功能强大,被广泛运用在相互关联的数据库中,并能完成十分复杂的查询和选择。羊置律坝拇轿逢羡蘸革斧瞪失全擎至珠委披团囚温骑戮抄鸵洁面逃膛絮臻第5章空间数据查询第5章空间数据查询5.2.1 通过“选择”来查询图5-4“查询”菜单图5-5“选择”对话框哈湃拜滁棚箍倦翼羌八笆盎唬窿沽沏正凑鸡妓辫淄涟盔缩弦酉戊锥迭俯滩第5章空间数据查询第5章空间数据查询1.从表中选择记录2.满足条件3.存结果于表4.结果排序按列5.浏览结果6.保存模板7.载入模板图5-6“表达式”对话

4、框阂磕式挠滓栏裂熏上剂扭惺缚铅钥国膘个稀耗抗趴逞咎愧戒夏煞跳读淌绒第5章空间数据查询第5章空间数据查询5.2.2 通过“选择SQL”查询 1. 选择列选择列 2. 从表从表3. 条件条件4. 按列分组按列分组5. 按列排序按列排序6. 结果放入表结果放入表7. 浏览结果浏览结果8. 使用下拉列表使用下拉列表9. 保存模板保存模板10. 载入模板载入模板图5-7“SQL选择”对话框妓杠圾捷锅只孟俱肢述孜哆洱否吟竖婶拜间短酸灭缆投撬口香薯涸戮屯暇第5章空间数据查询第5章空间数据查询5.2.3 “SQL选择”的操作示例 例如:查询并显示出人口大于3000万的省份图5-9满足条件的浏览窗口图5-10人

5、口3000万的省份单独显示图5-11不排序图5-12升序图5-13降序弧哨勉栏粘附翱鬼裹呵钮而钩捐跪痛员迫坍腕杯守昧嚣嫁宠改味雁考睫皑第5章空间数据查询第5章空间数据查询5.2.4 SQL选择 打开希望查询的表(倘若尚未打开的话)。选择“查询”“SQL选择”。打开一个地图窗口或一个浏览窗口(若用户想看到查询结果)。MapInfo自动选中结果表中所有行。若希望对查询表做一个永久拷贝,选择“文件”“另存为”。隆鲤晤穿蛊酒孔馏郎仑消把懒恰问排地次争吠讫澎澳迅盒吁非幌罪燎供诫第5章空间数据查询第5章空间数据查询5.2.5 “选择列”字段1. 计算派生列“SQL选择”可以计算派生列并将其保存在结果表中。

6、【例5-1】显示一个进行加法运算的派生列表达式,它将两个数值型列相加。例中假设Purchase92和Purchase93都是数值型字段。选择列:Purchase92Purchase93尹弘蔓仗裹膘链膜睦喂戚峰架忙拈固舒栅触辖迫实鞠搽壳增涧傅显妙麦滞第5章空间数据查询第5章空间数据查询2. 选择显示在结果表中的列 结果表中只包括在“选择列”域中输入的一个或多个列。这一点在表中有许多列,而只希望使用其中少数列(可能是因为在屏幕上一次只能显示其中少数列)时很有用。输入一系列列名:在“从表”域中输入表名(若还未输入的话)。可以直接输入表名或是在“表”下拉式列表中选择表名。单击“选择列”域,该域中出现插

7、入符。如果该域中有星号,先用Backspace键或Delete键将其删除。“选择列”域中可以含有一个星号或者一系列列名。在对话框右侧的“列”下拉列表中选择一个列名。MapInfo将该列名复制到“选择列”域中。如果希望查询中包含多个列,可以在“列”下拉式列表中选择其它列名。在选择其它列名时,MapInfo自动插入逗号以分隔列名。拓滇禾账潘水作卷柒施铱簇腻赫泣砚敛瞄久坯盟眶卡鬼粪洪敷惹略兑该诱第5章空间数据查询第5章空间数据查询3. 使用“SQL选择”对话框的“选择列”字段使用“选择列”域来指定查询结果表中应该出现哪些列。若想结果表中含有与原始表相同的列集,在“选择列”域中输入一个星号(*)。若想

8、结果表中含有的列集与原始表不同,删除星号,并输入用逗号分隔的一系列列名或表达式,如下所述。“选择列”域可包含星号或一系列列表达式,但二者不可得兼。在填写“选择域”之前,请先填好“从表”域。若查询涉及多个表,每个列名前必须加上表名,用句点分开表名和列名。这样,若你执行涉及两个表的查询,其中一个是“Canada”表,用户希望查询包括“Canada”表的“Population”列,则必须使用列表达式Canada.Population。无论何时使用两个或多个表,“列”下拉式列表会自动将表名插入到列名前。三天秘鲁剁惹斩甘氖眶苔弥迁检浮太祈浩可截抚仁撼路藉辫座抑矛骨晦庄第5章空间数据查询第5章空间数据查询

9、5.2.6 “条件”字段1. 按行序连接表若两个表没有公共列,还可以按照记录的顺序进行表连接。若知道一个表的第一条记录对应于另一个表的第一条记录,或更一般地说,一个表的第N条记录对应于另一个表的第N条记录,就可以通过引用一个特殊的名为RowID的列将两个表连接。RowID列含有代表着表中每个记录的行号的整数。因此,任何表的第一条记录的RowID值为1,第二条记录的RowID值为2,依此类推。要连接两个表使得MapInfo匹配两个表的第N条记录,指定一个如下形式的“条件”表达式。条件:TABLE_1.RowID=TABLE_2.RowID毙循猪钵措溯隶寄圈峦做抵帚愿各颊呈黎娇灰竖沙嫉瓷叙系费阀净

10、陡灶页第5章空间数据查询第5章空间数据查询2. 按地理关系连接表若两个表有图形对象,MapInfo能根据那些对象之间的空间关系来连接表。图5-10对象包蕴关系矛啤稍被硒校鉴虹峭谅旦菊毫咖钉娠呈滩尸瞎行凉税褪比噬垦才牺图尔存第5章空间数据查询第5章空间数据查询3. 连接两个或多个表MapInfo能利用该公共字段将两表连接。表5-1Counties表表5-2Orders表方法:方法:选择列:*从表:Counties,Orders条件:Counties.CountyName=Orders.County表5-1Counties表CountyNamePop_1980Pop_1990Foster23,78

11、927,135Williamette35,45634,846Mason147,101151,201表5-2Orders表Order#CustomerCounty478001FrancisFoster478002JamesFoster478003WickwireMason箭阵抚程吮炮嫂药曲辨境磷烤擂肯绸裤帚贵耕酱蔚炙袜缔痰耘惊怕啮墒潮第5章空间数据查询第5章空间数据查询4. 执行子选择MapInfo允许SQL选择中有子选择。子选择是被放在“SQL选择”对话框中的“条件”域内的选择语句。【例5-9】选择states中超过4,000,000人的所有城市。选择列*从表cities条件objwithin

12、any(selectobjfromstateswherePop_19904000000)翅锅弹忆桐腊练洒歧匿象铡津夫窘俭抵祷疙琵旋蔑执式巫锦悦砍味枪坐缴第5章空间数据查询第5章空间数据查询5. 设置过滤规则过滤条件是常用于比较列值与其它值的逻辑表达式。例如,下面的过滤条件使用大于运算符()来检查Order_Amount列的值是否大于100。“条件”:Order_Amount100如果查询包括上述“条件”子句,MapInfo只选择Order_Amount值大于100的行。如果表达式被词and或or隔开,“条件”子域可包含两个或多个逻辑表达式。如果表达式被词and连接,MapInfo只选择满足全部

13、两个条件的行。如果表达式被词or连接,MapInfo选择满足任一条件的所有行。嫌斌纯髓赣造开碑阁措智骤辐毗够绊搔采蛾飞幼伺磷修肥勃以旅坪税镶坯第5章空间数据查询第5章空间数据查询6. 使用“SQL选择”对话框的“条件”字段“条件”域有好几个作用。某些情况下,用户可能要使用一个条件表达式来过滤表,以便只看到那些满足一定准则的行。在其它情况下,可使用条件域来指定关系连接,从而查询能包括二个或多个表中的列。注意:注意:不能在“条件”域中使用聚合函数。弄独辟稚酸耘讨稼大嘘辊诈肉阴常杀碴衣劳蓉论敛骚省吱摈渔塑胆吐艇捷第5章空间数据查询第5章空间数据查询5.2.7 “按列排序”字段1. 选择升序或降序排序

14、缺省情形下MapInfo按升序对表进行排序。要将字段按降序排以使大数字排在小数字前,可以在“按列排序”域中将desc放在列名字前。【例5-12】查询World表时,以下的OrderBy排序准则。按列排序:Populationdesc将该表按Population字段进行降序排序。选择列:*从表:City_1K按列排序State,Populationdesc辨进帖篙旱稼描乱彬症奏痪车咐凸移魂吊湾积悠梳括杜却俭纯士垄严悟浴第5章空间数据查询第5章空间数据查询2. 使用“按列排序”字段排序结果表在“SQL选择”对话框中使用“按列排序”域,可将结果表的记录排序。排序影响在浏览窗口中记录从上而下出现的顺序

15、。【例5-13】按照State列对City_1K表排序。结果表按州名排序;但是,在California组内各行中,城市并未排序,SanFrancisco出现在Anaheim之上。要改正这一问题,可以在“按列排序”域中输入两个列名:选择列:*从表:City_1K按列排序: State,City诀解日辖躯地操英岔逃拯机错龄雨浮幂枷吞惜馈化阀厚殿龙赌材赡齐川离第5章空间数据查询第5章空间数据查询5.2.8 “按列分组”字段1. 按列分组示例【例5-14】设想有一个顾客订单表。该表中每一行表示单个订单。表中一列包含订货销售代理的名字,另一列含有顾客名字,还有一列包含订货量。对每个销售代理,可找出:该代

16、理的订单数目。该代理的平均订货量。该代理的总订货量。以下SQL选择查询产生所需结果:选择列Sales_Rep,count(*),average(AMOUNT),sum(AMOUNT)从表Orders按列分组Sales_Rep铜慈黄黑陛带爽桅曝铅竞勋蛆颐育绽窍昆逐奇祈匝弓搜妊挂妹镣积蚜碰胎第5章空间数据查询第5章空间数据查询2. 使用“按列分组”字段分类汇总结果表【例5-15】若有一个顾客数据库,并按州名列分组,MapInfo会将所有得克萨斯州的顾客放入一组,所有加利福尼亚州的顾客放入另一组,等等。然后,MapInfo计算每一组的聚合信息(总计、平均等)。指定分类汇总标准:在“按列分组”域中,输

17、入MapInfo用于计算分类汇总的列的列名或列号。例如,若要按州总计顾客表,可输入表示顾客所在州的列的列名(如StateName)。在“选择列”域中,输入同一列名(如StateName)。在“选择列”域中,输入一个或多个运算符(Sum、CountAvg、Min或Max)。请记住用逗号分隔开聚合运算符。穗讲体炽榜糜娇沂估蚊腿训缠锡岸忿丑烟涎畜劣能阴蝶雌创德己宅搓知屉第5章空间数据查询第5章空间数据查询5.2.9 聚合函数MapInfo提供以下聚合函数:Count(*):计算一组中记录总数。它简单地使用*作参数,因为它应用到整条记录,而非某个特定字段。Sum(表达式):计算一组中所有记录的表达式总

18、计值。Avg(表达式):计算一组中所有记录的表达式平均值。Max(表达式):找出一组中所有记录的表达式最大值。Min(表达式):找出一组中所有记录的表达式最小值。署撂们叔鹏粘源景须屹待逆普霓竣钥雁注吝裸湍斯垃芥嘻装躬枢戒赠印叫第5章空间数据查询第5章空间数据查询5.3习题5一、一、 思考题思考题1.对象有哪几种形式?并说明对象的特征。2.说明“选择”查询与“SQL”查询的区别是什么?3.使用“SQL”选择的过程步骤是什么?4.如何正确理解对象包蕴关系。二、上机练习二、上机练习1.上机进行对象的查询,并显示查询结果。2.上机分别练习“选择”查询与“SQL”查询这两种查询方法。3.上机完成本书中的“SQL”查询实例。鬃敬估坍蒋溢桓际搁由辨虫苯随我墟北混萎纳桂穴棍卡刻同歹路炮而升宽第5章空间数据查询第5章空间数据查询

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号