Access 2003完整教程:创建查询 (ADP)

注释本主题中的信息仅适用于 Microsoft Access 项目 (.adp)。

创建视图

创建非索引视图

  1. 在“数据库”窗口中,单击“对象”下的“查询”,然后单击“新建”。
  2. 在“新建查询”对话框中,选择“设计视图”。
  3. 在“查询设计器”的“图表”和“网格”窗格中设计视图。
  4. 单击工具栏上的“保存”
  5. 在“另存为”对话框中,输入符合 Microsoft Access 对象命名规则的名称。

    Microsoft Access 将视图添加到“数据库”窗口中“对象”下的“查询”中。

创建索引视图

索引视图是其结果集存储在数据库中以便进行快速访问的视图。Microsoft Access 项目连接到 Microsoft SQL Server 2000 Enterprise Edition 或 SQL Server 2000 Developer Edition 时将支持索引视图,但是在 Microsoft SQL Server 2000 Desktop Edition 中不支持索引视图。如果数据是只读(如决策支持系统)、索引视图的查询不涉及聚合或联接,并且索引视图的基表架构定义不会发生变化,则最好使用索引视图。有关索引视图的详细信息,请参阅 Microsoft SQL Server 文档。

  1. 在“数据库”窗口中,单击“对象”下的“查询”,单击要打开的查询,再单击数据库窗口工具栏上的“设计”。
  2. 将表添加到“图表”窗格中。由于希望这是索引视图,因此请确保只添加您自己的表。
  3. 选择要在视图中包括的列。请不要使用星号 (*);必须明确选择要在索引视图中显示的每个列。
  4. 用鼠标右键单击“图表”窗格的背景,然后从快捷菜单中选择“管理索引”。即会出现“索引”对话框。

    注释因为对可以索引的视图有许多限制,因此很多情况下无法使用“管理索引”命令。例如,如果您不是每张表的所有者,则无法索引视图。有关对创建索引视图的限制的完整说明,请参阅 Microsoft SQL Server 文档。

  5. 在对话框中,单击“新建”。
  6. 请为索引定义 — 索引名称、索引列及其次序、索引文件组和其他索引设置 — 提供信息。有关每个对话框选项的详细信息,请单击“帮助”。

创建存储过程

在“查询设计器”中创建单语句存储过程。

  1. 在“数据库”窗口中,单击“对象”下的“查询”,然后单击“新建”。
  2. 在“新建查询”对话框中,选择“设计存储过程”。
  3. 在“查询设计器”的“图表”和“网格”窗格中,设计存储过程。
  4. 单击工具栏上的“保存”
  5. 在“另存为”对话框中,输入符合 Microsoft Access 对象命名规则的名称。

    Microsoft Access 将存储过程添加到“数据库”窗口中“对象”下的“查询”中。

在“SQL 文本编辑器”中创建多语句存储过程。

  1. 在“数据库”窗口中,单击“对象”下的“查询”,然后单击“新建”。
  2. 在“新建查询”对话框中,选择“创建文本存储过程”。

    Access 显示具有以下基于 SQL 语法的“SQL 文本编辑器”。

    CREATE PROCEDURE "StoredProcedure1"
    /*
        (
        @parameter1 datatype = default value,
        @parameter2 datatype OUTPUT
    )
    */
    AS
        /* SET NOCOUNT ON */
        RETURN
    
  3. 可以使用 Transact-SQL 来编写存储过程。有关 Transact-SQL 的详细信息,请参阅 SQL Server 文档。

    注释

    • 如果创建从数据库返回行的存储过程,则 CREATE PROCEDURE 语句后的第一个语句必须是 SELECT 语句,或者必须在过程的顶端使用 SET NOCOUNT ON。这样就确保了显示来自第一个 SELECT 语句的结果集;否则,不显示任何行。有关 SET NOCOUNT ON SQL 语句的详细信息,请参阅 SQL Server 文档。

    • 通过使用“查询生成器”,可以以图形方式编辑多语句存储过程中的 SQL SELECT 语句。

创建用户定义函数。

创建嵌入的用户定义函数

  1. 在“数据库”窗口中,单击“对象”下的“查询”,然后单击“新建”。
  2. 在“新建查询”对话框中,选择“设计嵌入函数”。
  3. 在“查询设计器”的“图表”和“网格”窗格中,设计嵌入的用户定义函数。
  4. 单击工具栏上的“保存”
  5. 在“另存为”对话框中,输入符合 Microsoft Access 对象命名规则的名称。

    Microsoft Access 将该嵌入用户定义函数添加到“数据库”窗口中“对象”下的“查询”

创建表用户定义函数

  1. 在“数据库”窗口中,单击“对象”下的“查询”,然后单击“新建”。
  2. 在“新建查询”对话框中,选择“创建文本表值函数”。

    Access 将显示 SQL 文本编辑器,并包含下列框架 SQL 语法:

    CREATE FUNCTION "Function1"
        (
        /*
        @parameter1 datatype = default value,
        @parameter2 datatype
        */
        )
    RETURNS /* @table_variable TABLE (column1 datatype, column2 datatype) */
    AS
        BEGIN
            /* INSERT INTO @table_variable
                sql select statement */
            /* alternative sql statement or statements */
        RETURN
        END
    

    用 Transact-SQL 编写表用户定义函数。有关 Transact-SQL 的详细信息,请参阅 Microsoft SQL Server 文档。

  3. 在“另存为”对话框中,输入一个符合 Microsoft Access 对象命名规则的名称。

    Microsoft Access 会将表用户定义函数添加到“数据库”窗口中“对象”下的“查询”

注释可以使用“查询生成器”,以图表的形式编辑表用户函数中的 SQL SELECT 语句。

创建标量用户定义函数

  1. 在“数据库”窗口中,单击“对象”下的“查询”按钮图像,然后“新建”。
  2. 在“新建查询”对话框中,选择“创建文本标量函数”。

    Access 将显示 SQL 文本编辑器,并包含下列框架 SQL 语法:

    CREATE FUNCTION "Function1"
        (
        /*
        @parameter1 datatype = default value,
        @parameter2 datatype
        */
        )
    RETURNS /* datatype */
    AS
        BEGIN
            /* sql statement ... */
        RETURN /* value */
        END
    

    用 Transact-SQL 编写表用户定义函数。有关 Transact-SQL 的详细信息,请参阅 Microsoft SQL Server 文档。

  3. 在“另存为”对话框中,输入一个符合 Microsoft Access 对象命名规则的名称。

    Microsoft Access 会将标量用户定义函数添加到“数据库”窗口中“对象”下的“查询”

注释可以使用“查询生成器”,以图表的形式编辑标量用户定义函数中的 SQL SELECT 语句。

注释不能将用户定义函数用作数据访问页的记录源。

创建操作查询

创建“追加值”查询

注意无法撤消追加值查询操作。作为预防措施,请在执行该查询前先备份数据。

背景信息

使用追加值查询可以在当前表中创建新行。创建追加值查询时,请指定:

例如,下列查询将行添加到titles表中,指定名称、类型、出版商和价格的值:

INSERT INTO titles
 (title_id, title, type, pub_id, price)
VALUES ('BU9876', 'Creating Web Pages', 'business', '1389', '29.99')

创建追加值查询时,“网格”窗格会发生变化以反映用于插入新行的选项:列名称和要插入的值。

创建追加值查询

  1. 在“数据库”窗口中,单击“对象”下的“查询”,然后单击“新建”。
  2. 在“新建查询”对话框中,选择“设计存储过程”。
  3. 在“添加表”对话框中,添加要将值追加到其中的表、视图或函数,然后单击“关闭”。
  4. 在“查询”菜单上,单击“追加值查询”。

    注释如果开始追加值查询时,“网格”窗格中显示多个表、视图或函数,“查询设计器”将显示“选择插入值的目标表”对话框以提示您输入要更新的表的名称。

  5. 通过将其添加到查询中,可以定义要创建的数据列。只有将列添加到查询中时,列才被更新。
  6. 在“网格”窗格的“新值”列中,输入列的新值。可以输入字面值、列名称或表达式。该值必须与要更新的列的数据类型匹配(或兼容)。

    注意“查询设计器”无法检查值是否符合所要插入的列的长度。如果所提供的值过长,则可能不提供警告信息就截断该值。例如,如果name列为 20 个字符长,但您却指定插入值为 25 个字符,则最后 5 个字符可能被截断。

使用“查询设计器”工具栏上“运行”按钮执行追加值查询时,将显示消息表明已更改的行的数目。

创建“追加”查询

注意无法撤消执行追加查询的操作。作为预防措施,请在执行该查询前对数据进行备份。

背景信息

使用追加查询可将行从某表复制到另一张表中,也可在表内复制行。例如,在“书目”表中,可以使用追加查询将有关某出版商的所有书名复制到要提供给该出版商的另一张表中。追加查询类似于生成表查询,但该查询将行复制到现有的表中。

创建追加查询时,要指定:

例如,下列查询将书目信息从titles表复制到名为archivetitles的存档表中。该查询将复制属于特定出版商的所有书名的四列的内容:

INSERT INTO archivetitles
 (title_id, title, type, pub_id)
SELECT title_id, title, type, pub_id
FROM titles
WHERE (pub_id = '0766')

注释若要在新行中插入值,请使用追加值查询。

可以在行中复制选定列或所有列的内容。在任一情况下,所复制的数据必须与要复制到的行中的列兼容。例如,如果要复制诸如price列的列中的内容,所要复制到的行中的列必须接受带小数位的数字数据。如果要复制整个行,则目标表必须在与源表相同的物理位置上具有兼容列。

创建追加查询时,“网格”窗格将发生变化以反映复制数据可用的选项。因为追加查询中不显示数据,所以“输出”列将被移除。将添加“追加”列以允许您指定应该将数据复制到其中的列。

创建追加查询

  1. 在“数据库”窗口中,单击“对象”下的“查询”,然后单击“新建”。
  2. 在“新建查询”对话框中,选择“设计存储过程”。
  3. 在“添加表”对话框中,添加用来创建追加查询的表、视图或函数,然后单击“关闭”。
  4. 在“查询”菜单上,单击“追加查询”。

    注释“查询设计器”无法事先确定可以更新哪些表和视图。因此,在“选择插入结果的目标表”对话框中的“表名称”列表将显示所查询的数据连接中的所有可用表和视图,甚至还显示可能无法复制行到其中的表和视图。

  5. 将从中复制行的表(源表)添加到查询中。如果正在表内复制行,可以将源表作为目标表添加进去。
  6. 在表示表、视图或函数的矩形中,选择要复制其内容的列名。若要复制整个行,请选择“*(所有列)”。

    “查询设计器”将所选的列添加到“网格”窗格的“列”列中。

  7. 在目标表的“网格”窗格的“追加”列中,为要复制的每个列选择目标列。如果要复制整个行,请选择tablename.*。目标表中的列必须包含与源表中的列相同(或兼容)的数据类型。
  8. 如果想以特定的次序复制行,请指定排序次序。
  9. 在“条件”列中,通过输入搜索条件来指定要复制的列。

    如果不指定搜索条件,则所有行将被复制到目标表中。

    注释将要搜索的列添加到“网格”窗格中时,“查询设计器”同时将其添加到要复制列的列表中。如果想使用某列来进行搜索但不想复制该列,请清除表示表、视图或函数 (图标图像) 的矩形中列名称旁的复选框。

  10. 如果想复制汇总信息,请指定“分组依据”选项。

使用“查询设计器”工具栏上的“运行”按钮执行追加查询时,将显示消息表明已经复制的行的数目。

创建“更新”查询

注意无法撤消执行更新查询的操作。作为预防措施,请在执行该查询前先备份数据。

背景信息

可以通过使用更新查询,在一次操作中更改多行的内容。例如,在titles表中,可以使用更新查询将特定出版商的所有书籍的价格上调 10%。

创建更新查询时,请指定:

例如,以下查询通过将某个出版商的所有书籍的价格上调 10% 更新titles表:

UPDATE titles
SET price = price * 1.1
WHERE (pub_id = '0766')

创建更新查询

  1. 在“数据库”窗口中,单击“对象”下的“查询”,然后单击“新建”。
  2. 在“新建查询”对话框中,选择“设计存储过程”。
  3. 在“添加表”对话框中,添加要用来更新的表、视图或函数,然后单击“关闭”。
  4. 在“查询”菜单上,单击“更新查询”。

    注释开始更新查询时,如果在“网格”窗格中显示多个表,则“查询设计器”显示“更新表”对话框以提示您输入要更新表的名称。

  5. 通过将数据列添加到查询中可定义要更新的数据列。只有将其添加到查询中时列才被更新。
  6. 在“网格”窗格的“新值”列中,输入列的更新值。可以输入字面值、列名称或表达式。该值必须与要更新列的数据类型匹配(或兼容)。

    注意“查询设计器”无法检查值是否符合所要更新的列的长度。如果所提供的值过长,则可能不提供警告信息就截断该值。例如,如果name列为 20 个字符长,但您却指定更新值为 25 个字符,则最后 5 个字符可能被截断。

  7. 通过在“准则”列中输入搜索条件,可定义要更新的行。

    如果不指定搜索条件,则更新所有行。

    注释将某列添加到“网格”窗格以便在搜索条件中使用时,“查询设计器”还会将其添加到要更新的列的列表中。如果想使用某列作为搜索条件但并不更新该列,请清除表示表、视图或函数 (图标图像) 的矩形中的列名称旁的复选框。

使用“查询设计器”工具栏上“运行”按钮执行更新查询时,将显示消息表明已更改的行的数目。

创建“删除”查询

注意无法撤消执行删除查询的操作。作为预防措施,请在执行删除查询前对数据进行备份。

背景信息

使用删除查询可在一次操作中删除多行。创建删除查询时,请指定要删除行的数据库表并指定要定义的删除行的搜索条件。

注释从表中删除所有行将清除表中数据,但并不删除表本身。可以使用“数据库设计器”删除表。

创建删除查询时,“网格”窗格会发生变化以反映删除行时可用的选项。因为删除查询中不显示数据,因此将移除“输出”、“排序依据”和“排序次序”列。此外,因为无法指定删除列,因此将移除表示表、视图或函数的矩形中列名称旁的复选框。

创建删除查询

  1. 在“数据库”窗口中,单击“对象”下的“查询”,然后单击“新建”。
  2. 在“新建查询”对话框中,选择“设计存储过程”。
  3. 在“添加表”对话框中,添加要在删除查询中使用的表、视图或函数,然后单击“关闭”。
  4. 在“查询”菜单上,单击“删除查询”。
  5. 输入定义要删除的行的搜索条件。如果不指定搜索条件,则删除所有行。

    注释因为无法删除单个列中的内容,因此开始删除查询时,将移除表示表、视图或函数的矩形中的复选框。要将列添加到搜索条件中所用的“网格”窗格中,请将其从表示表、视图或函数的矩形中拖到“列”列,或者从“列”列中选择数据列。

使用“查询设计器”工具栏上的“运行”按钮来执行删除查询时,将显示消息表明已删除的行的数目。

创建“生成表”查询

背景信息

使用生成表查询可将行复制到新表中,在创建要使用的数据子集或将表的内容从一个数据库复制到另一个数据库时,这非常有用。生成表查询类似于追加查询,但该查询创建要将行复制到其中的新表。

创建生成表查询时,请指定:

例如,下列查询将创建称为uk_customers的新表并将信息从customers表复制到其中:

SELECT *
INTO uk_customers
FROM customers
WHERE country = 'UK'

为成功使用生成表查询,必须拥有在目标数据库中创建表的权限。

创建生成表查询

  1. 在“数据库”窗口中,单击“对象”下的“查询”,然后单击“新建”。
  2. 在“新建查询”对话框中,选择“设计存储过程”。
  3. 在“添加表”对话框中,添加用来创建查询的表、视图或函数,然后单击“关闭”。
  4. 在“查询”菜单上,单击“生成表查询”。
  5. 在“生成表”对话框中,键入目标表的名称。“查询设计器”并不验证名称是否已使用或您是否有权限创建表。

    要在其他数据库中创建目标表,请使用以下语法指定完全符合要求的表名称,名称中包括目标数据库的名称、所有者(如果需要)和表的名称:

    database.owner.table

    有关有效对象名称的详细信息,请参阅 SQL Server 文档。

  6. 通过将其添加到查询中可指定要复制的列。只有将其添加到查询时列才被复制。若要复制整个行,请选择“* (所有列)”。

    “查询设计器”将所选的列添加到“网格”窗格的“列”列中。

  7. 如果想以特定的次序复制行,请指定排序次序。
  8. 通过输入搜索条件可指定要复制的行。

    如果不指定搜索条件,则将所有行复制到目标表中。

    注释将要搜索的列添加到“网格”窗格中时,“查询设计器”同时将其添加到要复制列的列表中。如果想使用某列来进行搜索但不想复制该列,请清除表示表、视图或函数 (图标图像) 的矩形中列名称旁的复选框。

  9. 如果想复制汇总信息,请指定“分组依据”选项。

使用“查询设计器”工具栏上“运行”按钮执行生成表查询时,将显示消息表明已复制的行的数目。

在“查询生成器”中以图形方式设计 SQL SELECT 语句。

在窗体或报表的记录源中以图形方式设计 SQL SELECT 语句

  1. 在“设计”视图中打开窗体或报表。
  2. 双击“窗体选择器”或“报表选择器”,打开窗体或报表的属性表。
  3. 单击“记录源”属性框旁的“生成器”按钮以显示“查询生成器”。
  4. 在“查询设计器”的“图表”或“网格”窗格中设计 SQL SELECT 语句。
  5. 若要保存 SQL SELECT 语句,请关闭“查询生成器”,然后关闭属性工作表。

    注释Access 并不将 SQL SELECT 语句添加到“数据库”窗口中的“对象”下的“查询”中。

在“SQL 文本编辑器”中以图形方式设计 SQL SELECT 语句。

  1. 在“数据库”窗口中,单击“对象”下的“查询”,选择多语句存储过程、标量用户定义函数或表用户定义函数,然后单击“设计”。

    Access 将在“SQL 文本编辑器”中显示多语句存储过程、标量用户定义函数或表用户定义函数。

  2. 请执行下列操作之一:

    编辑现有 SQL SELECT 语句

    1. 用鼠标右键单击 SQL SELECT 语句,然后单击“编辑 SQL”。

      Microsoft Access 将提示在“查询生成器”中加载 SQL SELECT 语句。

    2. 单击“是”。

    新建 SQL SELECT 语句

    • 用鼠标右键进行单击,然后选择“插入 SQL”。

      Access 打开带空“图表”和“网格”窗格的“查询生成器”。

  3. 在“查询生成器”中做所需的更改。

    注释Access 不自动验证 SQL 语句的语法。可以使用“查询生成器”工具栏上的“检验 SQL 句法”按钮。

  4. 关闭“查询生成器”。

    Access 将新的或修改过的 SQL SELECT 语句插入到“SQL 文本编辑器”中。

上页:Access 2003完整教程:没有选定的列。请选择一个或多个列并重新运行查询 下页:Access 2003完整教程:关于“数据库设计器” (ADP)

Access 2003完整教程:创建查询 (ADP)

Access 2003完整教程:关于“数据库设计器” (ADP)Access 2003完整教程:关于查询中的表达式 (ADP)
Access 2003完整教程:“添加表”对话框(数据库设计器)Access 2003完整教程:“选择名称”对话框
Access 2003完整教程:“创建关系”对话框Access 2003完整教程:“列选择”对话框
Access 2003完整教程:“检测到数据库更改”对话框(数据库设计器)Access 2003完整教程:“需要更改数据类型”对话框
Access 2003完整教程:“删除表”对话框Access 2003完整教程:关于“图表”窗格
Access 2003完整教程:有关“网格”窗格Access 2003完整教程:“索引/键”属性页
Access 2003完整教程:“选择插入结果的目标表”对话框Access 2003完整教程:“选择插入值的目标表”对话框
Access 2003完整教程:联接线属性页Access 2003完整教程:“生成表”对话框
Access 2003完整教程:“页面设置”对话框Access 2003完整教程:“查询定义不同”对话框
Access 2003完整教程:查询属性页Access 2003完整教程:视图属性页
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号