目录

上一个主题

5.4. 从SpatiaLite中导出表

下一个主题

5.6. 创建查询和视图


本教程由OSGeo中国中心维护

5.5. 管理表

数据库管理器提供了使用以下工具创建、重命名、编辑、删除和空表的功能。在本节中,我们将讨论每个工具。

5.5.1. 创建新表

使用DB Manager创建新表相当简单。创建新表时,可以指定它是空间表还是非空间表。在本节中, 我们将在SpatiaLite中创建一个新的空间表,以保存有关公园中山峰的数据;为此,请执行以下步骤:

要在QGIS桌面的一个对话框中快速创建新的空间层(以及可选的数据库), 请导航到 Layer ‣ Create Layer ‣ New SpatiaLite Layer...

  1. 通过单击数据库下面的打开数据库管理器。

  2. 导航到 Table ‣ Create Table 以打开 Create Table 窗口。

  3. 输入 "Peaks" 作为表名。

  4. 单击 Add field 按钮添加新表字段。字段列表中将出现一个新行。从字段类型选项列表中,将 name 字段设置为 "name", 将 Type 字段设置为 "character(20)"。

  5. 单击 Add field 按钮添加第二个字段 Name 字段设置为 "Elevation" 以及 Type 字段设置为 "integer" 。

  6. Primary key 字段设置为 "Name" 。 这将要求峰值名称是唯一的。

  7. 选择 Create geometry column 然后选择以下选项:

  • Create geometry column : POINT

  • Name : geom

  • Dimensions : 2

  • SRID : 26910

  1. 选择 Create spatialindex 为表创建空间索引。

  2. 创建的对话框应该像下面的截图。如果是,请单击 Create 创建新表的按钮,如 图 5.10

_images/image325.png

图 5.10 创建表

  1. 如果表创建成功,将出现一个提示,确认一切正常。关闭对话框,然后单击 Close 关闭按钮,以关闭 Create Table 窗口。

  2. 查看新的 "Peaks" 表,通过树中的选择面板 "GiffordPinochet.sqlite" 刷新 "Tree" ,然后单击 "Database" 下的 Refresh 或按键盘上的 f5 键。请注意 "Peaks" 表格具有点图标,表示它是一个几何表格。

5.5.2. 重命名表

要重命名表,请执行以下步骤:

  1. 通过单击数据库下边的打开 DB Manager 来打开数据管理器, 在 "Tree" 面板中,展开 "Tree" 并选择包含要重命名的 表的数据库。

  2. 在 "Tree" 面板中,选择要编辑的表。右键单击表从上下文菜单中选择 Rename 对其进行重命名。

5.5.3. 编辑表属性

要编辑表属性,请执行以下步骤:

  1. 通过单击 Database 下的打开数据库管理器来打开 DB Manager 。 在 "Tree" 面板中,展开 "Tree" 然后选择包含要编辑的表的数据库。

  2. 在 "Tree" 面板中,选择要编辑的表。导航到 Table ‣ Edit table` ,以打开 "Table properties" 窗口。

  3. 这个 table properties 窗口(如下截图所示)有三个选项卡- "Columns", "Constraints" 和 "Indexes" -允许编辑其各自表属性的。

以下屏幕截图显示数据库表的列属性:如 图 5.11

_images/image326.png

图 5.11 表属性

  1. 这个"字段选项卡列出所有字段,它们的类型,它们是否允许空值以及它们的默认值。 在字段列表下方, 有四个按钮。 "Add column" 按钮将打开一个窗口,并允许您创建一个新字段并指定其属性。 "Add geometry column" 按钮将打开一个窗口,并允许您创建新的几何字段并指定其属性。 "Edit column" 按钮将打开一个窗口,并允许您更改所选字段的属性。 "Delete column" 按钮删除所选字段。

  2. SpatiaLite不支持表格更改命令,例如编辑和删除现有字段;因此,这些选项将被禁用。

  3. "Constraints" 选项卡列出了表上的所有约束。它们的名称,类型和受约束影响的列。 "Add primary key/unique" 将打开一个窗口,并允许您创建新的主键约束。Delete constraint 按钮可删除所选约束。

  4. SpatiaLite不支持从现有表中添加或删除约束;因此,这些选项将被禁用。可以使用其他SQLite客户端管理约束。

  5. 这个"Indexes" 选项卡列出了表中的所有索引,它们的名称以及作为索引一部分的列。 Add index 按钮将打开一个窗口, 该窗口允许您通过选择要索引的字段来创建新索引,并提供索引名称。添加空间索引按钮将空间索引添加到表中。 仅当表格是几何字段时,此选项才可用。 Delete index 按钮删除当前选择的索引。

5.5.4. 删除表

有两种方法可以从QGIS中的数据库中删除表:使用QGIS Desktop中的 "Browser" 面板,或使用数据库管理器。

在QGIS桌面使用浏览器面板,展开要从中删除表的数据库,然后右键单击该表并选择 "Delete layer"。

要使用DB Manager删除表,数据库下面的数据管理器。 在 "Tree" 面板中,展开 "Tree" 然后选择包含要删除的表的数据库。 在 "Tree" 面板中,选择要删除的表。单击 Table 下的 "Delete table/view" 。 您也可以右键单击 "Tree" 面板中的表,然后从上下文菜单中选择 "Delete" 。

5.5.5. 清空表

要从表中删除每个记录而不删除表,请通过单击 Database 下的 "DB Manager" 来打开 DB Manager 。 在 "Tree" 面板中,展开 "Tree" ,然后选择包含要清空的表的数据库。在 "Tree" 面板中,选择要清空的表。 然后,在 "Table" 下单击 Empty table