sql和mapinfo处理

本文详细介绍了如何在Mapinfo中使用SQL查询,包括打开查询表、指定SQL Select对话框、创建结果表、查看查询结果以及保存查询结果为永久图层。通过SQL Select对话框的各区域,如Select Columns、From Tables和Where Condition,可以进行复杂的查询和数据操作,如选择特定列、计算导出列、联接不同表以及使用地理操作符。此外,还讨论了如何使用Subselects进行多表联接和数据过滤。
摘要由CSDN通过智能技术生成

Mapinfo重点及难点讲解(一)

 

 

SQL查询  重分区 无缝图层  返回

 

    一、SQL查询  

     

 

SQL Select的一般步骤:

 

1.打开你要查询的表。你要查询的表为基础表(Base Table)

 

2.选择Query>SQL Select,填写SQL Select对话框满足你需要的那些分。按击OK,Mapinfo进行查询。

 

Mapinfo从你的基础表中抽出数据,把查询结果保存在一个被称为结果表的特殊临时表中。结果表仅有满足你的条件的行和列。结果表的默认名是Selection(尽管你可以在SQL Select对话框的Info Table Named位置上指定一个不同的结果表名)。

 

注意:以下第三条暗示:结果表既反映在Browser窗口,也反映在Map窗口中,换句话说,可收查询结果保存为另一个图层。保存方法见下面的第5条。

 

3.如果你要看查询结果,打开一个Map窗口或(和)一个Browser窗口。默认的是MapInfo自动以一个Browser窗口显示结果表(除非你清除了SQL Select对话框中的Browser Results检查盒)。

 

如果你的结果表被命名为Selection(默认名),Browser窗就显示一个不同的表名,例如Query1名Query2。这是因为你浏览这个Selection表的瞬间,MapInfo对该表作了一个“快拍”,并命名这个快拍为Queryn(n是数字,1或更大)。MapInfo主要按快拍是因为“Selection”是一个特殊的表名,每当你选择或不选择某些行时,Selection都在动态变化。

 

在SQL Select对话框中,你可以为你的结果表输入一个另外的名字(例如,你可以命名你的结果表为My-Query)。这就阻止了MapInfo把你的结果表重命名为Queryn。

 

4.MapInfo自动选择结果表中全部的行。这样,在你执行了SQL Select之后,你就能够接着执行选择行的全套操作。例如,你可以(通过选择Option>Region Style)对所有被选择的行提供另一种充填色,或者你能够Cut或Copy选择的全部行。

 

通常,你对结果表所作的任何变化都会自动作用于你的原始(基础)表。例如,如果你用SQL Select选择了基础表中的某些行,然后又从你的结果表中删除了部分行,MapInfo就会从你的表中删除相应的行。但是,如果你查询产生了小计(Subtotals),你可以改变这个结果表而不影响基础表。

 

5.如果你要作一个结果表的永久备份,选择File>Save As。

 

如果你你不执行Save As存盘,该结果表将在你退出MapInfo时被删除。

 

SQL Select对话框各区的填写

Select Columns区

(1)利用这个区来指定在查询表中将出现哪些列。例如查询World表,可以指定Select Columns:Country,Population,Indust_Grwth,如果你要你的结果表有与你的原表相同的列组,那就在这个区输入一个*号。

 

如果你要你的结果有一个与你的原表不同的列组,就要删去这个*号并输入由逗号分隔的列名(如下同)表达式列表。这个区能够包括一个*号或者一个列表达式列表,但不能同时包括这两种。要在你填Select Columns区之前填From Tables区。

 

如果你查询涉及的不止一个有,各个列名之前必须有它的表名,二者之间用西文句号分隔。因此,如果你要执行一个涉及两个表的查询,其中之一是Canada表,并且你要查询包括该表的Population列,那么你必须用列表达式Canada.Population。当你使用两个或多个表时,Columns下拉列表自动把表名插到各个列名之前。

 

(2)只选择部分列出现在结果表中是有用的,特别是你的原表有很多列而你仅需操作其中的少数列时(或许因为屏幕上只能同时显示少数列)

 

(3)如何输入一系列列名:

 

在From Tables区输入一个表名,可用键盘打入,也可用鼠标从Table下拉列表中选入。

 

用鼠标在Select Columns区中按击,使插入点出现在该区内。

 

用退格键或删除键删去*号(如果其中有*号),Select Columns区能够包含一个*号或者一串列名,但不能同时包含这两种。

 

从对话框右边的Columns下拉列表中选择一个列名。MapInfo把这个列名Co

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值