注意: 本主题中的信息仅适用于 (.adp) Microsoft Access 项目。
查询Designer由三个窗格组成:“关系图”窗格、“网格”窗格和“SQL”窗格。
查询Designer的三个窗格
-
“关系图”窗格 显示要查询的表、视图和内联函数。 每个矩形表示表、视图或内联函数,并显示可用的数据列以及指示如何在查询中使用每列的图标。 联接由矩形之间的线条指示。
-
“网格”窗格 包含类似于电子表格的网格,可在其中指定选项,例如要显示哪些数据列、要选择哪些行、如何对行进行分组等。
-
“SQL”窗格 显示查询的 SQL 语句。 可以编辑查询Designer创建的 SQL 语句,也可以输入自己的 SQL 语句。 对于输入无法使用“关系图”和“网格”窗格(例如联合查询)创建的 SQL 语句尤其有用。
可以通过在任何窗格中工作来创建查询:可以通过在“关系图”窗格中选择列、将其输入网格窗格中或使其成为 SQL 窗格中 SQL 语句的一部分来指定要显示的列。 “关系图”、“网格”和“SQL”窗格已同步 - 在一个窗格中进行更改时,其他窗格会自动反映更改。
“关系图”窗格
“关系图”窗格概述
“关系图”窗格显示查询中的表、视图、用户定义函数或子查询的图形显示。 它还显示它们之间的任何联接关系。
在“关系图”窗格中,可以:
-
添加或删除表、视图、用户定义的函数或子查询,并为输出指定数据列。
-
指定用于对查询进行排序的列。
-
指定要对结果集中的行进行分组。
-
在表、视图、用户定义的函数或子查询之间创建或修改联接。
在“关系图”窗格中进行更改时,将更新“网格”窗格和“SQL”窗格以反映所做的更改。 例如,如果在“关系图”窗格中的表、视图、用户定义函数或子查询窗口中选择用于输出的列,则查询Designer将数据列添加到“网格”窗格和 SQL 窗格中的 SQL 语句中。
关于“关系图”窗格图标、检查框和符号
每个表、视图、用户定义函数或子查询在“关系图”窗格中显示为单独的窗口。 每个矩形的标题栏中的图标指示矩形所表示的对象类型,如下表所示。
图标 |
对象类型 |
|
表 |
|
查看 |
|
内联函数 |
|
FROM 子句中的子查询 () |
每个矩形显示表、视图或用户定义函数的数据列。 复选框和符号显示在列名称旁边,以指示如何在查询中使用列。 工具提示显示列的数据类型和大小等信息。
下表列出了每个表、视图或用户定义函数的矩形中使用的检查框和符号。
复选框或符号 |
说明 |
|
指定数据列是出现在查询结果集中 (选择查询) ,还是在更新、追加、生成表或追加值查询中使用。 选择列以将其添加到结果中。 如果选择 了 (“所有列”) ,则输出中将显示所有数据列。 与 检查 框一起使用的图标会根据创建的查询类型而更改。 创建 Delete 查询时,不能选择单个列。 |
|
指示数据列用于对查询结果进行排序, (是 ORDER BY 子句) 的一部分。 如果排序顺序为升序,则图标显示为 A-Z;如果排序顺序为降序,则为 Z-A。 |
|
指示数据列用于创建分组结果集, (是聚合查询中) GROUP BY 子句的一部分。 |
|
指示数据列包含在查询的搜索条件中, (是 WHERE 或 HAVING 子句) 的一部分。 |
|
指示正在汇总数据列的内容以用于输出 (包含在 SUM、AVG 或其他聚合函数) 中。 |
注意: 如果查询Designer对表、视图或用户定义的函数没有足够的访问权限,或者数据库驱动程序无法返回有关它的信息,则查询Designer将不会显示表、视图或用户定义的函数的数据列。 在这种情况下,查询Designer仅显示表、视图或用户定义的函数的标题栏。
“关系图”窗格中的联接表
如果查询涉及联接,则联接中涉及的数据列之间会显示一条联接线。 如果联接的数据列未显示 (例如表、视图、用户定义函数或子查询窗口最小化,或者联接涉及表达式) ,则查询Designer将联接线置于表示表、视图、用户定义函数或子查询的矩形的标题栏中。 查询Designer为每个联接条件显示一个联接行。
联接线中间的图标形状指示如何联接表或表结构化对象。 如果 join 子句使用的运算符不是等于 (=) ,则运算符将显示在联接行图标中。 下表列出了可在联接行中显示的图标。
“联接行”图标 |
说明 |
|
使用等号) 创建的内部联接 (。 |
|
基于“大于”运算符的内部联接。 (联接行图标中显示的运算符反映了 join 中使用的运算符。) |
|
外部联接,其中将包括左侧表示的表中的所有行,即使它们在相关表中没有匹配项。 |
|
外部联接,其中将包括右侧表示的表中的所有行,即使它们在相关表中没有匹配项。 |
|
一个完整的外部联接,其中将包括两个表中的所有行,即使它们在相关表、视图、用户定义函数或子查询中没有匹配项。 |
联接线末尾的图标指示联接的类型。 下表列出了联接的类型以及可在联接线末端显示的图标。
联接行末尾的图标 |
说明 |
|
一对一联接 |
|
一对多联接 |
|
查询Designer无法确定联接类型 |
网格窗格
“网格”窗格概述
使用“网格”窗格,可以通过在类似于电子表格的网格中输入选项来指定查询选项,例如要显示哪些数据列、如何对结果排序以及要选择哪些行。 在“网格”窗格中,可以指定:
-
要显示的列和列名别名。
-
列所属的表。
-
计算列的表达式。
-
查询的排序顺序。
-
搜索条件。
-
分组条件,包括用于摘要报表的聚合函数。
-
更新或追加值查询的新值。
-
Append 查询的目标列名称。
在“网格”窗格中所做的更改将自动反映在“关系图”窗格和“SQL”窗格中。 同样,“网格”窗格会自动更新,以反映其他窗格中所做的更改。
关于网格窗格列
“网格”窗格中的行显示查询中使用的数据列;“网格”窗格中的列显示查询选项。
“网格”窗格中显示的特定信息取决于要创建的查询类型。 如果要创建“选择”查询,则“网格”窗格包含的列与创建更新查询时不同。
下表列出了可在“网格”窗格中显示的网格列。
列 |
查询类型 |
说明 |
列 |
全部 |
显示用于查询的数据列的名称或计算列的表达式。 此列已锁定,以便在水平滚动时始终可见。 |
别名 |
选择、追加、更新 Make-Table |
指定列的备用名称或可用于计算列的名称。 |
表 |
选择、追加、更新 Make-Table |
指定关联数据列的表、视图、用户定义函数或子查询的名称。 对于计算列,此列为空。 |
输出 |
选择、追加、Make-Table |
指定数据列是否显示在查询输出中。 注意: 如果数据库允许,可以将数据列用于排序或搜索子句,而无需在结果集中显示它。 |
排序类型 |
选择、追加 |
指定关联的数据列用于对查询结果进行排序以及排序是升序还是降序。 |
排序顺序 |
选择、追加 |
指定用于对结果集进行排序的数据列的排序优先级。 更改数据列的排序顺序时,将相应地更新所有其他列的排序顺序。 |
分组依据 按列中的信息对列表和库项目进行分组。 |
选择、追加、Make-Table |
指定使用关联的数据列创建聚合查询。 仅当已从“工具”菜单中选择“分组依据”或已将 GROUP BY 子句添加到“SQL”窗格时,才会显示此网格列。 默认情况下,此列的值设置为 Group By,该列将成为 GROUP BY 子句的一部分。 移动到此列中的单元格并选择要应用于关联的数据列的聚合函数时,默认情况下,生成的表达式将添加为结果集的输出列。 |
条件 |
全部 |
指定搜索条件 (关联数据列的筛选) 。 输入运算符 (默认值为“=”) 和要搜索的值。 将文本值括在单引号中。 如果关联的数据列是 GROUP BY 子句的一部分,则输入的表达式将用于 HAVING 子句。 如果在 “条件” 网格列中输入多个单元格的值,则生成的搜索条件将自动与逻辑 AND 链接。 若要为单个数据库列指定多个搜索条件表达式, (例如, (fname > 'A') AND (fname < 'M'),请将数据列添加到“ 网格 ”窗格两次,并在“ 条件 ”网格列中为数据列的每个实例输入单独的值。 |
或。。。 |
全部 |
为数据列指定其他搜索条件表达式,该表达式链接到具有逻辑 OR 的先前表达式。 可以通过按最右侧 的“或...” 列中的 TAB 键来添加更多 Or ... 网格列。 |
追加 |
追加 |
指定关联数据列的目标数据列的名称。 创建 Append 查询时,查询Designer会尝试将源与相应的目标数据列匹配。 如果查询Designer无法选择匹配项,则必须提供列名称。 |
新值 |
更新、追加值 |
指定要放入关联列中的值。 输入文本值或表达式。 |
SQL 窗格
SQL 窗格概述
“SQL”窗格显示当前查询的 SQL 语句。 生成查询时,SQL 窗格会自动更新并重新设置格式,以便于阅读。
在 SQL 窗格中,可以:
-
通过输入 SQL 语句创建新的查询。
-
根据在“关系图”和“网格”窗格中所做的设置,修改查询Designer创建的 SQL 语句。
-
输入利用特定于Microsoft SQL Server功能的语句。
SQL 窗格中的语句
可以直接在 SQL 窗格中编辑当前查询。 移动到另一个窗格时,查询Designer自动设置语句的格式,然后更改“关系图”和“网格”窗格以匹配语句。
注意: 可以为 SQL 语句输入优化器提示,但查询Designer可能会重新格式化它们。
如果语句不能在“关系图”和“网格”窗格中表示,并且这些窗格可见,则查询Designer显示错误,然后提供两个选项:
-
返回到 SQL 窗格并编辑 语句。
-
放弃更改并还原最新版本的 SQL 语句。
如果返回到 SQL 窗格并继续编辑语句,查询Designer会调暗其他窗格,以指示它们不再反映 SQL 窗格的内容。
还可以使用“SQL”窗格输入无法在查询Designer中以图形方式表示的 SQL 语句。 在这种情况下,查询Designer显示与检测到错误时相同的行为 - 它会变暗“关系图”和“网格”窗格,以指示它们不表示当前语句。 可以继续编辑语句,并像执行任何 SQL 语句一样执行它。
注意: 如果输入 SQL 语句,但随后通过更改“关系图”和“网格”窗格对查询进行进一步更改,查询Designer将重新生成并重新显示 SQL 语句。 在某些情况下,此作会生成一个 SQL 语句,该语句的构造方式与最初输入 (的语句不同,但它始终) 生成相同的结果。 在处理涉及与 AND 和 OR 链接的多个子句的搜索条件时,这种差异尤其可能。