使用数据定义查询创建或修改表或索引

注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。本页面是自动翻译的,可能包含语法错误或不准确之处。我们的目的是使此内容能对你有所帮助。可以在本页面底部告诉我们此信息是否对你有帮助吗?请在此处查看本文的英文版本以便参考。

您可以创建和修改通过在 SQL 视图中编写数据定义查询的表、 约束、 索引以及在 Access 中的关系。本文介绍数据定义查询以及如何使用它们来创建表、 约束、 索引和关系。本文还可以帮助您决定何时使用数据定义查询。

本文内容

概述

创建或修改表

创建索引

创建一个约束或关系

概述

与其他 Access 查询,不同数据定义查询不会检索数据。相反,数据定义查询使用数据定义语言创建、 修改或删除数据库对象。

注意: 数据定义语言 (DDL) 是一部分的结构化查询语言 (SQL)。

数据定义查询可以很方便。您可以定期删除并重新只是通过运行某些查询中创建的数据库架构部分。请考虑使用数据定义查询,如果您熟悉 SQL 语句,并且您打算删除并重新创建特定的表、 约束、 索引或关系。

警告: 使用数据定义查询修改数据库对象可以是风险,因为操作不伴随确认对话框。如果发生误操作,可以将丢失数据或无意中更改表格的设计。数据定义查询用于修改数据库中的对象时要小心。如果您不是负责维护您正在使用的数据库,您应该之前进行咨询与数据库管理员运行数据定义查询。

重要: 使之前运行数据定义查询所涉及的任何表的备份副本。

DDL 关键字

关键字

用途

CREATE

创建索引或尚不存在的表。

ALTER

修改现有表或列。

DROP

删除现有的表、 列或限制。

ADD

向表添加一列或约束。

COLUMN

用于添加、 更改或删除

CONSTRAINT

用于添加、 更改或删除

INDEX

用于创建

TABLE

用于创建、 更改或删除

返回页首

创建或修改表

若要创建的表格,您可以使用创建表命令。创建表命令具有以下语法:

CREATE TABLE table_name 
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

只有必需元素的创建表命令的创建表命令本身和表的名称,但通常要定义某些字段或表的其他方面。请考虑以下简单示例。

假设您想要创建一个表来存储名称、 年份和使用正考虑购买的汽车的价格。您希望允许最多 30 个字符的名称及年的 4 个字符。若要使用的数据定义查询创建表,请执行下列操作:

注意: 首先,您可能需要启用顺序数据定义查询以运行的数据库的内容:

  • 在消息栏,单击“启用内容”

创建表格

  1. 创建选项卡上的宏和代码组中,单击查询设计

  2. 关闭“显示表”对话框。

  3. 设计选项卡上的查询类型组中,单击数据定义

    设计网格中处于隐藏状态,并显示 SQL 视图对象选项卡。

  4. 键入以下 SQL 语句:

    创建表汽车 (名称 TEXT(30),年 TEXT(4),价格货币)

  5. “设计”选项卡上的“结果”组中,单击“运行”

修改表格

若要修改表格,您可以使用 ALTER TABLE 命令。ALTER TABLE 命令可用于添加、 修改或删除 (remove) 列或约束。ALTER TABLE 命令具有以下语法:

ALTER TABLE table_name predicate

其中谓词可以是下列操作之一:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

假设您想要添加 10 个字符的文本字段以存储有关每个汽车的条件的信息。您可以执行以下操作:

  1. 创建选项卡上的宏和代码组中,单击查询设计

  2. 关闭“显示表”对话框。

  3. 设计选项卡上的查询类型组中,单击数据定义

    设计网格中处于隐藏状态,并显示 SQL 视图对象选项卡。

  4. 键入以下 SQL 语句:

    ALTER 表汽车添加列条件 TEXT(10)

  5. “设计”选项卡上的“结果”组中,单击“运行”

返回页首

创建索引

若要在现有的表上创建索引,您可以使用创建索引命令。创建索引命令具有以下语法:

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

只需的元素是表的创建索引命令,名称索引、 开参数、 包含所需的索引,字段的名称和字段列表中要包括在索引中。

  • 要按降序顺序,非常有用,如果您经常时运行查询所创建的索引查找上限值的索引的字段中,或降序参数原因对索引的字段按降序顺序进行排序。默认情况下,按升序创建索引。

  • 与主参数为表主键建立索引的字段。

  • 使用不允许为 NULL 参数导致索引需要索引字段输入值-即,不允许空值。

假设您有一个名为使用存储名称、 年、 价格和使用正考虑购买的汽车的条件的字段的汽车表。此外假设表格变得较大,并且您经常在查询中包括 year 字段。您可以帮助您更快地使用以下过程返回结果的查询的年字段上创建索引:

  1. 创建选项卡上的宏和代码组中,单击查询设计

  2. 关闭“显示表”对话框。

  3. 设计选项卡上的查询类型组中,单击数据定义

    设计网格中处于隐藏状态,并显示 SQL 视图对象选项卡。

  4. 键入以下 SQL 语句:

    创建索引 YearIndex 开汽车 (年)

  5. “设计”选项卡上的“结果”组中,单击“运行”

返回页首

创建一个约束或关系

限制建立插入值时,必须满足字段组合中的逻辑条件。例如,唯一约束禁止约束的字段接受会复制现有值的字段的值。

关系是约束的字段的一种类型的值是约束的字段的指或以确定某个值是否可以插入字段的组合的约束的字段中的另一个表中的字段的组合。不使用特殊关键字以指示限制是一种关系。

要创建的约束,可以使用 CONSTRAINT 子句中创建的表格或更改表格的命令。有两种类型的 CONSTRAINT 子句: 一个用于创建的单个字段和另一个用于创建多字段限制的约束。

单字段限制

单字段 CONSTRAINT 子句紧跟的定义的字段,它将约束,并具有以下语法:

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

假设您有一个名为使用存储名称、 年、 价格和使用正考虑购买的汽车的条件的字段的汽车表。此外假设您经常忘记输入的值的汽车条件和要始终记录此信息。您可以创建防止保留为空,通过使用以下过程的字段的条件字段上的约束:

  1. 创建选项卡上的宏和代码组中,单击查询设计

  2. 关闭“显示表”对话框。

  3. 设计选项卡上的查询类型组中,单击数据定义

    设计网格中处于隐藏状态,并显示 SQL 视图对象选项卡。

  4. 键入以下 SQL 语句:

    ALTER 表汽车 ALTER 列条件文本限制 ConditionRequired 不为空

  5. “设计”选项卡上的“结果”组中,单击“运行”

现在假设,一段时间后您注意到应该是相同的条件字段中有多个相似的值。例如,一些汽车有的较差的条件值和其他人有错误值。

注意: 如果您希望以追用剩余的过程,到您在前面的步骤中创建的汽车表添加一些伪造数据。

清理值,以便它们更一致后,您可以创建一个表,命名 CarCondition,一个字段,名为条件,其中包含您想要的汽车条件中使用的所有值:

  1. 创建选项卡上的宏和代码组中,单击查询设计

  2. 关闭“显示表”对话框。

  3. 设计选项卡上的查询类型组中,单击数据定义

    设计网格中处于隐藏状态,并显示 SQL 视图对象选项卡。

  4. 键入以下 SQL 语句:

    创建表 CarCondition (条件 TEXT(10))

  5. “设计”选项卡上的“结果”组中,单击“运行”

  6. 通过使用 ALTER TABLE 语句中创建表的主键:

    更改表 CarCondition ALTER 列条件文本限制 CarConditionPK 主键

  7. 若要从汽车表的条件字段值插入新的 CarCondition 表,请在 SQL 视图对象选项卡中键入以下 SQL:

    插入到 CarCondition 选择 DISTINCT 从汽车; 条件

    注意: 在此步骤中的 SQL 语句是追加查询。与数据定义查询,以分号结尾追加查询。

  8. “设计”选项卡上的“结果”组中,单击“运行”

通过使用限制创建关系

需要插入汽车表的条件字段中的任何新值匹配 CarCondition 表中的条件字段的值,您可以再创建汽车 CarCondition 之间的关系名条件,为使用下面的字段步骤:

  1. 创建选项卡上的宏和代码组中,单击查询设计

  2. 关闭“显示表”对话框。

  3. 设计选项卡上的查询类型组中,单击数据定义

    设计网格中处于隐藏状态,并显示 SQL 视图对象选项卡。

  4. 键入以下 SQL 语句:

    ALTER 表汽车 ALTER 列条件文本限制 FKeyCondition 引用 CarCondition (条件)

  5. “设计”选项卡上的“结果”组中,单击“运行”

多字段限制

多字段 CONSTRAINT 子句可以使用仅外部字段定义子句,并具有以下语法:

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

请考虑使用汽车表的另一个示例。假设您想要确保没有汽车表中的两个记录拥有组的名称、 年、 条件和价格相同的值。您可以创建唯一约束,使用以下过程向这些字段中,应用:

  1. 创建选项卡上的宏和代码组中,单击查询设计

  2. 关闭“显示表”对话框。

  3. 设计选项卡上的查询类型组中,单击数据定义

    设计网格中处于隐藏状态,并显示 SQL 视图对象选项卡。

  4. 键入以下 SQL 语句:

    更改表汽车添加约束 NoDupes 唯一 (名称、 年、 条件、 价格)

  5. “设计”选项卡上的“结果”组中,单击“运行”

返回页首

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×