ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

工作流:使用 SQL 创建表并将表注册到地理数据库

在 Standard 或 Advanced 许可等级下可用。

  • 使用 SQL 创建非空间表
  • 使用 SQL 向非空间表中添加数据
  • 使用 SQL 创建空间表
  • 使用 SQL 向空间表中添加数据
  • 将表注册到地理数据库
复杂程度:
中级
数据要求:
使用自备的数据
目标:
使用 SQL 创建空间表和非空间表,而后注册到地理数据库。

您可使用 SQL 创建表文件。如果表中包含空间列,其会被视为一个空间表。而且,也可使用 SQL 语句向非空间表和空间表中填充数据。只要表存在,即可将其注册到地理数据库,以便其可以参与地理数据库功能。

如果要使用自定义应用程序创建空间表或非空间表,或者从其他机构或承建商处接收数据库表,而且还想要充分利用地理数据库和 ArcGIS 的功能,则可能需要执行上述操作。

同样,可以使用 SQL 定义空间和非空间表格上的视图。如果视图定义包括一个包含可用作对象 ID 的唯一值的整型列,则可以将该视图注册到地理数据库。您可通过注册视图存储与视图内容有关的信息(例如范围和几何类型)以及定义视图上的元数据。

本工作流将介绍使用 SQL 客户端创建非空间表和空间表、向表添加数据以及将表注册到地理数据库。

使用 SQL 创建非空间表

  1. 打开 SQL 客户端,以具有数据库中创建表权限的用户身份登录到数据库。
  2. 使用 CREATE TABLE SQL 语句创建一个非空间表 patients,该表包含具有以下名称的列:PID、f_name、l_name 和 dwel_id。

    Oracle

    CREATE TABLE patients 
    (PID integer NOT NULL, f_name nvarchar2(25), l_name nvarchar2(38), dwel_id integer);
    

    PostgreSQL

    CREATE TABLE patients 
    (PID integer NOT NULL UNIQUE, f_name varchar(25), l_name varchar(38), dwel_id integer);
    

    Db2

    CREATE TABLE patients 
    (PID integer NOT NULL, f_name varchar(25), l_name varchar(38), dwel_id integer)
    

    Informix

    CREATE TABLE patients 
    (PID integer NOT NULL, f_name varchar(25), l_name varchar(38), dwel_id integer);
    

使用 SQL 向非空间表中添加数据

使用 SQL INSERT 语句向 patients 表中添加记录。

  1. 向 patients 表中插入四条记录:

    Oracle

    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id)
    VALUES (1, 'wolfgang', 'bruker', 4301);
    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id)
    VALUES (2, 'ida', 'pastens', 4301);
    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id)
    VALUES (3, 'ricardo', 'montoya', 1001);
    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id)
    VALUES (4, 'tukufu', 'endel', 9601);
    

    PostgreSQL

    INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (1, 'wolfgang', 'bruker', 4301);
    INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (2, 'ida', 'pastens', 4301);
    INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (3, 'ricardo', 'montoya', 1001);
    INSERT INTO patients (PID, f_name, l_name, dwel_id)
    VALUES (4, 'tukufu', 'endel', 9601);
    

    Db2

    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (1, 'wolfgang', 'bruker', 4301)
    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (2, 'ida', 'pastens', 4301)
    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id) VALUES (3, 'ricardo', 'montoya', 1001)
    INSERT INTO PATIENTS (PID, f_name, l_name, dwel_id)
    VALUES (4, 'tukufu', 'endel', 9601)
    

    Informix

    INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (1, 'wolfgang', 'bruker', 4301);
    INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (2, 'ida', 'pastens', 4301);
    INSERT INTO patients (PID, f_name, l_name, dwel_id) VALUES (3, 'ricardo', 'montoya', 1001);
    INSERT INTO patients (PID, f_name, l_name, dwel_id)
    VALUES (4, 'tukufu', 'endel', 9601);
    

使用 SQL 创建空间表

还可使用 CREATE TABLE 语句创建包含空间列的表。

  1. 创建表 outbreaks,该表包含整型的 OID 列、整型的 dwel_id 列、字符串型的 address 列、整型的 city_code 和 ST_Geometry loc 列:

    Oracle

    CREATE TABLE outbreaks 
    (OID integer NOT NULL, address nvarchar2(120), city_code integer, loc sde.st_geometry);
    

    PostgreSQL

    CREATE TABLE outbreaks 
    (OID integer NOT NULL UNIQUE, address varchar(120), city_code integer, loc sde.st_geometry);
    

    Db2

    CREATE TABLE outbreaks 
    (OID integer NOT NULL, address varchar(120), city_code integer, loc db2gse.st_geometry)
    

    Informix

    CREATE TABLE outbreaks 
    (OID integer NOT NULL UNIQUE, address varchar(120), city_code integer, loc st_geometry);
    

使用 SQL 向空间表中添加数据

向 outbreaks 表中插入三条记录。

注:

这些示例语句中的 0 表示 SRID。您将指定其他数字。

  1. 使用 INSERT SQL 语句和 ST_Point 函数向 outbreaks 表中添加记录:

    Oracle

    INSERT INTO OUTBREAKS (OID, address, city_code, loc)
    VALUES (1, 
    '1420 kirchestrasse', 
    43, 
    sde.st_geometry (0.00003, 0.00051, null, null, 4326)
    );
    INSERT INTO OUTBREAKS (OID, address, city_code, loc)
    VALUES (2, 
    '638 villa arbol', 
    10, 
    sde.st_geometry (0.00020, -0.00029, null, null, 4326)
    );
    INSERT INTO OUTBREAKS (OID, address, city_code, loc)
    VALUES (3, 
    '5579 riverview dr', 
    96, 
    sde.st_geometry (-0.00048, -0.00009, null, null, 4326)
    );
    

    PostgreSQL

    INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (1, 
    '1420 kirchestrasse', 43, 
    sde.st_point (0.00003, 0.00051, null, null, 4326) );
    INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (2, 
    '638 villa arbol', 10, 
    sde.st_point (0.00020, -0.00029, null, null, 4326) );
    INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (3, 
    '5579 riverview dr', 96, 
    sde.st_point (-0.00048, -0.00009, null, null, 4326)
    );
    

    Db2

    INSERT INTO OUTBREAKS (OID, address, city_code, loc) VALUES (1, 
    '1420 kirchestrasse', 43, 
    db2gse.st_point (0.00003, 0.00051, null, null, 0) )
    INSERT INTO OUTBREAKS (OID, address, city_code, loc) VALUES (2, 
    '638 villa arbol', 10, 
    db2gse.st_point (0.00020, -0.00029, null, null, 0) )
    INSERT INTO OUTBREAKS (OID, address, city_code, loc) VALUES (3, 
    '5579 riverview dr', 96, 
    db2gse.st_point (-0.00048, -0.00009, null, null, 0)
    )
    

    Informix

    INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (1, 
    '1420 kirchestrasse', 43, 
    st_point (0.00003, 0.00051, null, null, 0) );
    INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (2, 
    '638 villa arbol', 10, 
    st_point (0.00020, -0.00029, null, null, 0) );
    INSERT INTO outbreaks (OID, address, city_code, loc) VALUES (3, 
    '5579 riverview dr', 96, 
    st_point (-0.00048, -0.00009, null, null, 0)
    );
    

将表注册到地理数据库

可将表注册到 ArcGIS Desktop 中的地理数据库。

下面一组步骤介绍了如何在 ArcGIS Desktop 中注册到地理数据库:

  1. 打开注册到地理数据库工具。

    可以搜索该工具,在“数据管理”工具箱的“地理数据库管理”工具集中将其打开,也可在 ArcMap 的目录树中右键单击数据库连接下的表或视图,然后单击注册到地理数据库。

  2. 启动 ArcGIS Desktop 客户端并连接到包含要注册的表或视图的企业级地理数据库。

    请以表或视图所有者的身份连接,因为只有所有者方可将其注册到地理数据库。

  3. 右键单击 patients 表,然后单击注册到地理数据库。
  4. PID 字段被定义为非空整型列,因此被用作所注册表的对象 ID。
  5. 右键单击 outbreaks 表,然后单击注册到地理数据库。
  6. 为所插入的字段定义了空间参考并且只插入了一种实体类型(点),因此 ArcGIS 会根据注册进行检测并使用该信息来定义要素类。OID 字段被定义为非空整型列,因此被用作所注册要素类的对象 ID。

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明