5.5. 管理表¶
数据库管理器提供了使用以下工具创建、重命名、编辑、删除和空表的功能。在本节中,我们将讨论每个工具。
5.5.1. 创建新表¶
使用DB Manager创建新表相当简单。创建新表时,可以指定它是空间表还是非空间表。在本节中, 我们将在SpatiaLite中创建一个新的空间表,以保存有关公园中山峰的数据;为此,请执行以下步骤:
要在QGIS桌面的一个对话框中快速创建新的空间层(以及可选的数据库), 请导航到
。1.通过单击数据库下面的打开数据库管理器。
2.导航到 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
8.选择 Create spatialindex 为表创建空间索引。
9.创建的对话框应该像下面的截图。如果是,请单击 Create 创建新表的按钮,如 图 5.10 。

图 5.10 创建表¶
10.如果表创建成功,将出现一个提示,确认一切正常。关闭对话框,然后单击 Close 关闭按钮,以关闭 Create Table 窗口。
11.查看新的 "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 properties" 窗口。3.这个 table properties 窗口(如下截图所示)有三个选项卡- "Columns", "Constraints" 和 "Indexes" -允许编辑其各自表属性的。
以下屏幕截图显示数据库表的列属性:如 图 5.11 。

图 5.11 表属性¶
4. 这个"字段选项卡列出所有字段,它们的类型,它们是否允许空值以及它们的默认值。 在字段列表下方, 有四个按钮。 "Add column" 按钮将打开一个窗口,并允许您创建一个新字段并指定其属性。 "Add geometry column" 按钮将打开一个窗口,并允许您创建新的几何字段并指定其属性。 "Edit column" 按钮将打开一个窗口,并允许您更改所选字段的属性。 "Delete column" 按钮删除所选字段。
5.SpatiaLite不支持表格更改命令,例如编辑和删除现有字段;因此,这些选项将被禁用。
6."Constraints" 选项卡列出了表上的所有约束。它们的名称,类型和受约束影响的列。 "Add primary key/unique" 将打开一个窗口,并允许您创建新的主键约束。Delete constraint 按钮可删除所选约束。
7.SpatiaLite不支持从现有表中添加或删除约束;因此,这些选项将被禁用。可以使用其他SQLite客户端管理约束。
8.这个"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 。