Mapinfo教学课件04第四讲 MapInfo表的选择和查询

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用矩形选择工具选择对象

1. 选择主工具条>矩形选择按钮。光标在地图或布局窗口时显示为 指示手形。 2. 把光标定位在要从中进行选择的区域角,并按住鼠标按钮。 3. 保持鼠标按钮按下并从始点拖动光标。做这一步时,屏幕出现一 个虚线矩形框指示所选区域。 4. 矩形达到所需大小时松开鼠标按钮。最上面的可选择图层中在该 矩形内的对象被选中。 要选择另一个图层的对象,必须在“图层控制”中关闭对最上面图层 的可选择性。一次只有一个图层中的对象被选中。 把对象增加到Selection集: 当希望把新的选中对象增加到以前选择的对象集合中时,使用<SHIFT> 键与矩形选择工具
第二节 从屏幕选择

从屏幕选择对象的时候,包含那些对象的图层必 须是可选择的,这在[图层控制]中设置。

MapInfo提供了屏幕选择工具: 选择工具; 多边形选择工具;
半径选择工具;
矩形选择工具;

选择好记录后, MapInfo就创建了一个 “查询表”,若要查看选中记录的列表, 选择[窗口]>[新建浏览窗口],从表名 组成的列表中选择“Selection”, MapInfo就为新的选择结果表创建了一 个浏览窗口。
SQL选择实例1

例1:用World表来创建人口密度大于500

人/平方公里的所有国家的表。 人口密度=人口数/面积 在World表中有关于人口的字段 (pop_1994),但是没有关于面积的字 段,可由于World表中有与记录相关联 的图形对象,MapInfo可计算每个国家 的总面积。
“SQL选择”对话框

“选择列”

本域告诉MapInfo在结果表中将包含哪几列。 缺省时,本域包含一个星号(*)。星号告诉 MapInfo:结果表中包含表中的每一列。若你 要结果表只包含表中的某几列,可用逗号分 隔的列名清单来代替星号。例如,当查询 World表时,可能要指定如下选择列清单: 选择列:Country, Population, Indust_Grwth
第四节

SQL选择



MapInfo的选择(Select)命令让用户构造一个复杂 的查询,而SQL查询(SQL Select)则更胜一筹, 它能提供非常强大的和非常有用的查询功能。 由选择命令生成的查询表中的记录不会拥有基础表的 记录不包含的信息。事实上,他们只是相同的记录。 它们仅仅被排列一下以便能放在一起查看。 而使用SQL查询,用户可以创建含有只是隐含在基础 表中的信息的查询表。为了创建该表,来自一张或者 多张表的数据被合并、聚合、并对数据进行排序。 例一 例二 例三 多表SQL选择



“辅助” 访问“表达式”对话框,你可在其中创建查询表达式。 “浏览结果” 缺省时,本框被选中。当你需要一张查询结果表时,可保留选 中。否则,清除该框。该表是在“存结果于表”中的指定的表。 “保存模板” 将对话框设置另存为查询模板。 “加载模板” 加载已保存的查询模板。







“从表中选择记录” 使用本下拉列表来选择要使用的表。 “满足条件” 在此处键入查询表达式,或单击“辅助”按钮来显示“表达式”对话 框。该对话框会帮助你创建查询表达式。 “存结果于表”(可选) 本选项允许你对含有聚合结果的临时表命名。“Selection”是缺省值。 若你选择“Selection”,MapInfo把表命名为“Query1”、“Query2”等 等。 “结果排序按列”(可选) 当你要按照某些列值对查询排序时,可选择此处。缺省时,查询不被 排序。你可以通过使用Select,并指定一种排序,但不使用任何表达 式就可将表排序成所要的顺序。然后,MapInfo选择表中所有记录并根 据指定列值将它们排序。
聚合

Count(*):计算一组中记录总数。它简单地使用*作参 数,因为它应用到整条记录,而非某个特定字段。 Sum(〈表达式〉):计算一组中所有记录的〈表达式〉 总计值。 Avg(〈表达式〉):计算一组中所有记录的〈表达式〉 平均值。 Max(〈表达式〉):找出一组中所有记录的〈表达式〉 最大值。 Min(〈表达式〉):找出一组中所有记录的〈表达式〉 最小值。

创建“查询表”的过程被称为选择(Selection)。 MapInfo有三种方式进行选择,他们可以分为两类: 从屏幕选择:半径选择工具、选择工具、矩形选择工具、 从图到
多边形选择工具、边界选择工具。 从属性 用查询选择:选择、 SQL选择 到图 属性

“查询表”是一个临时表,它完全依赖于创建它的基 础表,一旦关闭基础表,则所有与该基础表有关的 “查询表”均被删除。若想保存该表,使用[文 件]/[另存为]命令,将临时的“查询表”存为永久表。


在选择半径时按住Shift键,MapInfo Professional把当前选 中对象增加到前面选择操作选中的对象集中。 半径选择工具选取中心点在所选区域内的对象;该对象不必完 全被该半径形成的圆所包围。 注意:如果要选择的对象不在最顶部可选择图层中,可以在执 行半径操作时使用图层控制以切换到相应图层。
第四讲 MapInfo表的选择和查询

第一节 第二节 第三节 第四节
选择概述 从屏幕选择 选择 SQL选择
作业
第一节 选择概述
在现实生活中,我们往往要对各种各 样五花八门的事物进行选择,根据不同 的依据将它们分成不同的小组,在 MapInfo中,有时也需要对数据进行类 似的分组,这些组称为“查询表”。它 们是根据一个或多个变量而分组的数据 子集。

例子:以WORLD(Tut_Aust下)表为样 本,想选择出有文化的人口数占总人口 比例高于90%的国家。
步骤: 1)打开World.tab表,选择[查询]>[选择]; 2)在“选择”对话框的“从表中选择记录”下拉式 列表 中,选择“World”,单击[辅助]按钮,出 现“表达式”对话框; 3)在“表达式”对话框中,从“列”下拉式列表中 选择“Literacy”,从“运算符”下拉式列表中,选择 “>”,键入90。单击[检验]确保语法正确,然后[确 定]; 4)单击选择对话框[确定]。
“条件”



当你查询单个表时,“条件”域是可选的。若你的查 询涉及到连接两个或两个以上的表,则必须设定“条 件”表达式,该表达式必须指示MapInfo如何连接这 两个表。 若需要,可在“条件”域中输入过滤规则。为输入一 个过滤规则,可键入一个逻辑表达式,其计算值为 TRUE(真)或FALSE(假)。例如,当查询 World表时,若只要检索那些人口值大于五百万的行, 则可指定如下“条件”子句: 条件:Population > 5000000 当你在“条件”域中键入数字时,不要键入任何逗号。
“按列排序”域是可选的。若你保留该域为空白,则 结果表不排序。
“结果放入表”


本域允许你设定结果表的名称。缺省时,结果表命名为 Selection。若要赋给结果表另一个名称,可在“结果放入表” 域中键入该名。所输入表名不能是一个已打开表的名称。若你 经常使用SQL查询,并使用Selection作为结果表名,则最终会 留下大量的结果表(例如:Query1、Query2、 Query3…)。虽然这些Query n表不会产生什么害处,但一些人 不喜欢有大量打开的表。若要避免大量打开的Query n表,可在 “结果放入表”域中输入一个替代表名。例如,若你输入表名 QResults:
使用半径选择工具选择对象

1. 2. 3.
单击主工具条的半径选择工具。 把光标定位在要选择的区域的中心,并按鼠标按钮。 保持鼠标按钮按下并把光标从中心点拖走。 做此操作时,一个虚圆指示所选范围。精确的半径 显示在状态条中。 4. 当得到所需半径时松开鼠标按钮。 在此半径内的所有对象都被选中(圆自身并不显示)。
“从表”

本域告诉MapInfo查询哪张表。在“从表”域中至少 要输入一个表名。若你在MapInfo中查询两个或多个 表,可输入逗号分隔的表名清单。


若在“从表”域中输入两个或多个表的名称,则必须 在“条件”域中设定一个表达式来告知MapInfo如何 连接表。 若输入两个表名,MapInfo自动计算一个合适的“条 件”表达式。但是,若你使用三个或三个以上表名, 则必须手工修正“条件”表达式。若你执行多表连接, 则所有的表都必须是基础表。不能在多表SQL查询中 使用结果表(如Query5)。
使用下拉列表

“SQL选择”对话框的右边包含5个下拉列表:“表”、“列”、 “运算符”、“聚合”和“函数”。 下拉列表允许你用点按和单击来填写“SQL选择”对话框,而不 是键入。换句话说,这5个下拉式列表仅是减少你的键入工作量 的一条捷径。 例如,你必须在“从表”域中输入一个表名。可通过点按和单 击来完成: 1.单击“从表”域,光标出现在域中。 2.在“表”下拉式列表中按下鼠标键。开鼠标键。 MapInfo把选中的表名复制到“从表”域中。

“按列排序”


本域允许你对结果表排序。若你在“按列排序”域中 输入一个列名(或一个逗号分隔的列名清单), MapInfo将对结果表的行进行排序。缺省时,按照升 序对行排序,即A出现在B之前,小数字出现在大数字 之前。为了按照降序排序,可在列名之后输入单词 “desc”。 例如:


按列排序:Population desc



优 先 级 从 高 到 低
括号 负号 乘、除 加、减 地理运算符、比较运算符 Not(非) And(与) or(或)

例子:(2+4)>7 and A contains B 结果为True还是False?
A
B
函数




数学函数 如:Int(num) 返回数值的整数部分 日期函数 如:CurDate() 返回当前日期。 字符串函数 如:Chr$(num)返回与字符代码相对应的字符(如Chr$(65)返回字 符“A”)。 地理运算函数 如:Area(obj,str) 返回对象面积。str参数指定面积单位 名称,如“sq mi”或“sq km”。 返回对象的函数 如:Buffer (obj,num_res,num_width,str)返回代表缓冲区的区 域对象。num_res按每个圆周的节点数指定分辨率;num_width指定 缓冲区的半径;str是距离单位名称(如,“mi”或“km”),此单位 作用于num_width。

运算符


数学运算符
+、-、*、/、^


比较运算符
= 、<> 、> 、< 、>=、<=、_、%


逻辑运算符
“And”、“or”、“not”


地理运算符
Contains、Contains Entire、Within、 Entirely Within、Intersects
运算符优先级

MapInfo Professional对表达式求值时,需要知道要先对表达式的哪些部分求 值。这被称为优先级。根据约定,各运算符被赋给不同的优先级。有最高优先 级的被首先求值。下表按求值顺序列出MapInfo Professional的运算符。同一 优先级的运算符从左到右求值。


使用多边形选择工具选择对象

1. 单击主工具条中的多边形选择按钮。光标在地图或布局窗口中显示 为指示手形。 2. 将光标放置在区域的一角,并按下鼠标键,将从此处开始进行选择。 3. 按住鼠标,并将光标从开始点处拖开;将形成一个点状选取框,指 示选择了多边形区域。 4. 在选取框达到满意的大小后,松开鼠标键。顶端可选图层中位于多 边形内的对象将被选中。 为从其它层中选择对象,必须先在“图层控制”对话框(“地图”> “图层控制”)中关闭顶层的可选属性。每一次只能从一个图层中选 择对象。 在使用多边形选择工具时,按下<SHIFT>可以将新的选中对象加入到原 来的选择结果中。


第三节 选择


前一节中,介绍了如何通过屏幕选择工具直 接选择记录来创建“Selection”表。这种方 法很直观,但是在复杂的情况下,无法满足 选择要求。此外,屏幕选择无法实现根据记 录和对象的属性对表进行选择。 MapInfo Professional提供两种功能强大的 查询命令:“选择”和“SQL选择”。“选择” 更简便,而“SQL选择”功能更强。
相关文档
最新文档