Access SQL:基本概念、词汇和语法

Access SQL:基本概念、词汇和语法

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

当您想要从数据库中检索数据时,您通过使用结构化查询语言或 SQL 请求数据。SQL 是类似英语,但数据库程序了解计算机语言。您运行每个查询在后台使用 SQL。

了解 SQL 的工作方式可以帮助您创建更好的查询,并可以方便您了解如何修复未返回结果所需的查询。

这是一套 Access SQL 相关文章之一。本文介绍基本 SQL 以选择数据,并使用示例阐释 SQL 语法。

本文内容

什么是 SQL?

基本 SQL 子句: 选择、 FROM 和位置

对结果进行排序: 按顺序

使用汇总数据: 分组依据和 HAVING

合并查询结果: 联合

什么是 SQL?

SQL 是用于处理集事实和它们之间的关系的计算机语言。关系数据库程序,例如 Microsoft Office Access,使用 SQL 处理数据。许多计算机语言,与 SQL 不是很难阅读和理解,即使对于初学者。许多计算机语言,如 SQL 是由如ISOANSI标准机构识别国际标准。

使用 SQL 可以帮助您回答的问题的数据集的描述。使用 SQL 时,您必须使用正确的语法。语法不正确组合依据的一种语言的元素的规则集。基于英语语法,并使用许多相同的元素作为 Visual Basic for Applications (VBA) 语法的 SQL 语法。

例如,检索的姓氏的第一个名为 Mary 的联系人列表的简单的 SQL 语句可能类似于:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

注意: SQL 是不仅用于操作的数据,但也用于创建和修改的数据库对象,如表设计。用于创建和修改数据库对象的 SQL 的部分称为数据定义语言 (DDL)。本主题不包括 DDL。有关详细信息,请参阅文章创建或修改表或索引使用数据定义查询

SELECT 语句

若要使用 SQL 描述一组数据,您可以编写 SELECT 语句。SELECT 语句包含您想要从数据库中获取的数据集的完整说明。这其中包括:

  • 哪些表包含数据。

  • 如何相关来自不同数据源的数据。

  • 计算哪个或哪些字段将生成数据。

  • 数据必须匹配要包含的条件。

  • 是否以及如何对结果进行排序。

SQL 子句

一个句子,如 SQL 语句中具有子句。每个子句执行函数的 SQL 语句。一些子句的 SELECT 语句中需要。下表列出了最常见的 SQL 子句。

SQL 子句

执行的计算

必需

SELECT

列出含有关注的数据的字段。

支持

FROM

列出的表中含有 SELECT 子句中列出的字段。

支持

WHERE

指定要包括在结果内的每条记录必须符合的字段条件。

ORDER BY

指定怎样对结果进行排序。

GROUP BY

在包含聚合函数的 SQL 语句中,列出未在 SELECT 子句中汇总的字段。

仅在存在这类字段时才是必需的

拥有

在包含聚合函数的 SQL 语句中,指定应用于在 SELECT 语句中汇总的字段的条件。

SQL 术语

每个 SQL 子句组成条款 — 媲美词性。下表中的 SQL 术语的类型。

SQL 词条

类似的词性

定义

示例

标识符

名词

您用于识别数据库对象,如名称字段的名称。

客户。[电话号码]

运算符

动词或副词

表示操作或修改操作的关键字。

AS

常量

名词

不发生更改的值,如数字或 NULL。

42

表达式

形容词

标识符、运算符、常量和函数的组合,可计算为单个值。

>= 产品.[单价]

返回页首

基本 SQL 子句: 选择、 FROM 和位置

SQL 语句所需的常规窗体:

SELECT field_1
FROM table_1
WHERE criterion_1
;

注意: 

  • Access 将忽略 SQL 语句中的换行符。但是,请考虑使用每个子句的行来帮助您自己和其他人改进您的 SQL 语句的可读性。

  • 每个 SELECT 语句以分号 (;) 结尾。以分号可以显示的末尾的最后一个子句或上一行本身的 SQL 语句末尾。

在 Access 中的示例

下列说明什么简单的选择查询的 SQL 语句可能如下所示在 Access 中:

显示 SELECT 语句的 SQL 对象选项卡

1.SELECT 子句

2.FROM 子句

3.WHERE 子句

此示例 SQL 语句读取"选择从名为联系人,特别是在其中的字段城市值是西雅图这些记录的表名电子邮件地址和公司字段中存储的数据"。

我们来看一下示例中,一个子句,一次,以查看 SQL 语法的工作方式。

SELECT 子句

SELECT [E-mail Address], Company

这是 SELECT 子句。它包含的运算符 (选择) 后面跟有两个标识符 ([电子邮件地址] 和公司)。

如果某个标识符包含空格或特殊字符 (如"电子邮件地址"),它必须括在方括号中。

SELECT 子句没有说哪些表中包含的字段,并且它不能指定要包括的数据必须满足任何条件。

SELECT 子句始终显示前面的 FROM 子句的 SELECT 语句中。

FROM 子句

FROM Contacts

这是 FROM 子句。它包含的运算符 (从) 跟一个标识符 (联系人)。

FROM 子句不会列出要选择的字段。

WHERE 子句

WHERE City="Seattle"

这是 WHERE 子句。它包含的运算符 (其中) 后面跟有表达式 (城市 ="西雅图")。

注意: 与选择不同和 FROM 子句,WHERE 子句是而不是必需的元素的 SELECT 语句。

您可以完成许多 SQL 使您能够使用执行的操作选择、 FROM 和 WHERE 子句。有关如何使用这些子句的详细信息显示在这些更多文章:

返回页首

对结果进行排序: 按顺序

Microsoft Excel 中,如 Access 允许您对数据表中的查询结果进行排序。您也可以在查询中所需的结果进行排序时运行查询时,使用 ORDER BY 子句。如果您使用 ORDER BY 子句,它是 SQL 语句中的最后一个子句。

ORDER BY 子句包含您要用于排序,您想要应用排序操作同一个订单中的字段列表。

例如,假设您希望首先通过域公司中的值按降序排列,结果和 — 如果存在具有相同值的公司的记录下, 一步电子邮件地址字段中的值按升序排序。您 ORDER BY 子句将如下所示:

ORDER BY Company DESC, [E-mail Address]

注意: 默认情况下,Access 将以升序 (A 到 Z,最小到最大数) 的值进行排序。使用降序关键字改为按降序排序中的值进行排序。

有关 ORDER BY 子句的详细信息,请参阅顺序 BY 子句的主题。

返回页首

使用汇总数据: 分组依据和 HAVING

有时您想要使用的汇总数据,例如一个月的总销售额或库存中成本最高的项目。若要执行此操作,您将聚合函数应用在 SELECT 子句中的字段。例如,如果您希望您的查询以显示列出每个公司的电子邮件地址的计数,SELECT 子句可能如下所示:

SELECT COUNT([E-mail Address]), Company

您可以使用的聚合函数取决于您想要使用的表达式或字段中的数据的类型。有关可用的聚合函数的详细信息,请参阅SQL 聚合函数一文。

聚合函数中指定未使用的字段: GROUP BY 子句

使用聚合函数时,通常还必须创建 GROUP BY 子句。GROUP BY 子句列出您不适用于聚合函数的所有字段。将聚合函数应用到查询中的所有字段时,如果您没有创建 GROUP BY 子句。

如果没有 WHERE 子句,GROUP BY 子句紧随 WHERE 子句或 FROM 子句。GROUP BY 子句列出的字段,以便它们显示在 SELECT 子句。

如果 SELECT 子句适用于 [电子邮件地址] 的聚合函数,例如,继续上一示例中,但不能为公司,您 GROUP BY 子句将类似于以下内容:

GROUP BY Company

有关 GROUP BY 子句的详细信息,请参阅组 BY 子句的主题。

使用组条件限制聚合的值: HAVING 子句

如果您想要使用条件来限制结果,但想要应用标准聚合函数中使用的字段,您无法使用 WHERE 子句。相反,您可以使用 HAVING 子句。HAVING 子句的工作方式类似 WHERE 子句,但用于聚合数据。

例如,假设您使用 AVG 函数 (该计算的平均值) 在 SELECT 子句中的第一个字段:

SELECT COUNT([E-mail Address]), Company

如果您想要限制基于该 COUNT 函数的值的结果的查询,您无法为该域 WHERE 子句中使用条件。相反,将条件放在 HAVING 子句中。例如,如果您只想查询返回的行,如果有多个与公司相关联的电子邮件地址,HAVING 子句可能如下所示:

HAVING COUNT([E-mail Address])>1

注意: 查询可以添加一个 WHERE 子句和 HAVING 子句 — 聚合函数中未使用的字段的条件进入 WHERE 子句,或 HAVING 子句中使用聚合函数的字段的条件。

有关 HAVING 子句的详细信息,请参阅遇到子句的主题。

返回页首

合并查询结果: 联合

当您想要查看返回的几个相似的选择查询在一起,为合并集中的所有数据时,您可以使用联合运算符。

联合运算符允许您合并为一个两个 SELECT 语句。合并的 SELECT 语句的相同顺序和具有相同或兼容的数据类型必须相同数量的输出字段。运行查询时,从每个组的对应字段的数据将合并为一个的输出字段,,以便查询输出中具有相同数量的每个 select 语句的字段。

注意: 根据联合查询的目的,“数字”和“文本”数据类型兼容。

使用联合运算符时,您可以指定是否查询结果应包含重复的行,是否存在任何,通过使用所有密钥单词。

合并两个 SELECT 语句的联合查询的基本 SQL 语法如下所示:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

例如,假设您有一个名为产品表和命名服务的另一个表。两个表有字段中包含的产品或服务,价格,担保名称或保证的可用性,以及是否提供产品或服务以独占方式。尽管产品表存储担保信息,以及服务表存储保证信息,基本信息是相同 (是否特定产品或服务包括质量承诺)。您可以使用联合查询中的,如以下内容,合并两个表中的四个字段:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

有关如何使用联合运算符组合的 SELECT 语句的详细信息,请参阅合并多个选择查询使用联合查询的结果

返回页首

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

此信息是否有帮助?

谢谢您的反馈!

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

×