查询图层是存储在 ArcMap 地图中的 SQL 查询。 您可通过查询图层访问数据库中的空间和非空间表和视图。 由于查询图层直接使用 SQL 访问数据库,因此数据不必是企业级地理数据库的一部分,但是您可以根据需要为企业级地理数据库表和要素类定义查询图层。 例如,您可能没有数据库中创建视图的权限,但您希望对要素类中将显示在地图中的数据进行限制。 您可以在地图中创建查询图层,该查询图层将仅从要素类中选择某些字段或值。
请通过定义 SQL 查询的方式创建查询图层。 查询将针对您指定的数据库中的表和视图运行,如果查询包含空间列,则结果集将作为图层添加到地图上;如果查询不包含空间列,则结果集将作为独立表添加到地图上。
定义查询图层的 SQL 查询是一个静态 SQL 语句,每次在地图中显示或使用图层时都会在数据库内部执行 SQL 查询。 这样即可在不复制或捕捉数据的情况下看到最新的信息。 在处理频繁变动的动态信息时,此功能大有用处。
使用查询图层时,请谨记以下信息:
- 特定数据库管理系统支持查询图层。
- 要使用地图中的查询图层,可以将数据库中的表拖拽到地图中,或者使用新建查询图层对话框对数据库或企业级地理数据库中的表或视图定义查询。
- 将数据库表添加或拖动到地图时,ArcMap 会自动创建一个查询图层,该查询图层将从表中选择所有字段和行。 您可以通过从图层属性修改查询图层定义来更改地图中的可用内容。
- 或者,您可以在将数据添加到地图之前定义查询图层。 您必须使用此方法为企业级地理数据库中的数据定义查询图层。
- 查询图层和地图中的任何其他要素图层或独立表一样,所以这些图层可用于作为地理处理工具的输入来显示数据,或使用开发人员 API 通过编程方式进行访问。
- 通过数据库连接直接访问时,查询图层是只读的。
- 若要编辑作为查询图层访问的数据库表,请将其共享为 web 要素图层并从门户访问。 请注意,查询图层不能包含虚拟列、where 子句或连接。
- 创建查询图层后,您可以将其保存为图层文件 (.lyr) 或用其创建一个图层包 (.lpk)。 这样您就可以与其他应用程序、地图文档和其他人员共享查询图层了。
- 您可以将数据从查询图层导出到另一个数据库或企业级地理数据库。