空间数据查询-
若想结果表中含有的列集与原始表不同,删除星号, 并输入用逗号分隔的一系列列名或表达式,如下所述。 “选择列”域可包含星号或一系列列表达式,但二者不可 得兼。在填写“选择域”之前,请先填好“从表”域。
若查询涉及多个表,每个列名前必须加上表名,用句 点分开表名和列名。这样,若你执行涉及两个表的查询, 其中一个是“Canada”表,用户希望查询包括“Canada”表 的“Population”列,则必须使用列表达式 Canada.Population。无论何时使用两个或多个表,“列” 下拉式列表会自动将表名插入到列名前。
5.1.2 对象查询
图5-1 选择好记录的窗口
图5-2 “浏览表”对话 框
图5-3 查询结果浏览窗口
5.2 SQL查询
SQL(Structure Query Language)是 结构化查询语言,是一套强大的查询系 统。语言简单、指令简洁、操作简单、 功能强大,被广泛运用在相互关联的数 据库中,并能完成十分复杂的查询和选 择。
表5-1 Counties表
CountyName Foster Williamette Mason
Pop_1980 23,789 35,456 147,101
Pop_1990 27,135 34,846 151,201
Order #
表5-2 Orders表
Customer
County
478001
Francis
第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
条件: TABLE_1.RowID = TABLE_2.RowID
2. 按地理关系连接表 若两个表有图形对象,MapInfo能根
据那些对象之间的空间关系来连接表 。
图5-10 对象包蕴关系
3. 连接两个或多个表 MapInfo能利用该表5-公2 Or共ders表字段将两表连接。
表5-1 Counties表
5.2.4 SQL选择
① 打开希望查询的表(倘若尚未打开的话)。 ② 选择“查询”→“SQL选择”。 ③ 打开一个地图窗口或一个浏览窗口(若用
户想看到查询结果)。 ④ MapInfo自动选中结果表中所有行。 ⑤ 若希望对查询表做一个永久拷贝,选择
“文件”→“另存为”。
5.2.5 “选择列”字段
1. 计算派生列 “SQL选择”可以计算派生列并将其
⑤ 如果希望查询中包含多个列,可以在“列”下拉式列表中 选择其它列名。在选择其它列名时,MapInfo自动插入逗号以 分隔列名。
3. 使用“SQL选择”对话框的“选择列”字 段
使用“选择列”域来指定查询结果表中应该出现哪些 列。若想结果表中含有与原始表相同的列集,在“选择列” 域中输入一个星号(*)。
5.2.1 通过“选择”来查询
图5-4 “查询”菜 单
图5-5 “选择”对话 框
1. 从表中选择记录 2. 满足条件 3. 存结果于表 4. 结果排序按列 5. 浏览结果 6. 保存模板 7. 载入模板
图5-6 “表达式”对话框
5.2.2 通过“选择SQL”查询
1. 选择列 2. 从表 3. 条件 4. 按列分组 5. 按列排序
6. 结果放入表 7. 浏览结果 8. 使用下拉列表 9. 保存模板 10. 载入模板 图5-7 “SQL选择”对话 框
5.2.3 “SQL选择”的操作示例
例如:查询并显示出人口大于3000万的省份
图5-9 满足条件的浏览窗口 图5-11 不排序 图5-12 升序 图5-13 降序
图5-10 人口>3000万的省份单独显示
保存在结果表中。 【例5-1】显示一个进行加法运算的派生列
表达式,它将两个数值型列相加。例中 假设Purchase92和Purchase93都是数值型 字段。 选择列:Purchase 92 Purchase 93
2. 选择显示”域中输入的一个或多个列。 这一点在表中有许多列,而只希望使用其中少数列(可能是因 为在屏幕上一次只能显示其中少数列)时很有用。
5.2.6 “条件”字段
1. 按行序连接表
若两个表没有公共列,还可以按照记录的顺序 进行表连接。若知道一个表的第一条记录对应于 另一个表的第一条记录,或更一般地说,一个表 的第N条记录对应于另一个表的第N条记录,就可 以通过引用一个特殊的名为RowID的列将两个表连 接。
RowID列含有代表着表中每个记录的行号的 整数。因此,任何表的第一条记录的RowID值为1, 第二条记录的RowID值为2,依此类推。 要连接两个表使得MapInfo匹配两个表的第N条记 录,指定一个如下形式的“条件”表达式。
5.1 对象查询
5.1.1 对象
1. 点对象 :点是有特定的位置,维数为零的物 体。
2. 线对象:是GIS中非常常用的维度为一的空 间组分,表示对象和它们边界的空间属性,由一 系列坐标表示。
3. 多边形对象 :面状实体也称为多边形,是对 湖泊、岛屿、地块等一类现象的描述。通常在数 据库中由一封闭曲线加内点来表示。
Foster
478002
James
Foster
478003
Wickwire
Mason
方法: 选择列:* 从表:Counties, Orders 条件:
Counties.CountyName = Orders.County
4. 执行子选择
MapInfo允许SQL选择中有子选择。子选 择是被放在“SQL选择”对话框中的“条件” 域内的选择语句。
输入一系列列名:
① 在“从表”域中输入表名(若还未输入的话)。可以直接 输入表名或是在“表”下拉式列表中选择表名。
② 单击“选择列”域,该域中出现插入符。
③ 如果该域中有星号,先用〈Backspace〉键或〈Delete〉键将 其删除。“选择列”域中可以含有一个星号或者一系列列名。
④ 在对话框右侧的“列”下拉列表中选择一个列名。MapInfo 将该列名复制到“选择列”域中。