ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

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

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

帮助

  • 主页
  • 入门
  • 制图
  • 分析
  • 管理数据
  • 工具
  • 更多...

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

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

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

您可使用 SQL 创建表文件。如果表中包含空间列,其会被视为一个空间表。而且,也可使用 SQL 语句向非空间表和空间表中填充数据。之后,为了使用 ArcGIS 和地理数据库功能,还可将表注册到地理数据库。

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

使用 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 nvarchar2(120), city_code integer, loc 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, 
    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)
    );
    

    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 for Desktop 将表注册到地理数据库。

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

  1. 启动 ArcMap 并打开目录窗口,或启动 ArcCatalog。
  2. 连接到包含要注册的表的企业级地理数据库。

    此连接在目录树的“数据库连接”节点下进行。请确保以表所有者的身份进行连接。

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

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

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