Microsoft Access SQL 和 ANSI SQL 的比较

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

Microsoft Access 数据库引擎 SQL 通常是 ANSI-89 1 级。但是,在 Microsoft Access SQL 未实现某些 ANSI SQL 功能。此外,Microsoft Access SQL 包括保留的字和 ANSI SQL 中不支持的功能。

主要差异

  • Microsoft Access SQL 和 ANSI SQL 各自都有不同的保留字和数据类型。如果使用 Microsoft OLE DB Provider,还有另外一些保留字。

  • 应用于 Between...And 构造的规则不同,该构造有以下语法:

    expr1 [NOT] Between value1 And value2

    在 Microsoft Access SQL 中,value1 可以大于 value2;在 ANSI SQL 中,value1 必须等于或小于 value2。

  • Microsoft Access SQL 同时支持 ANSI SQL 通配符和 Microsoft Access 特有的通配符与 Like 运算符一起使用。ANSI 和 Microsoft Access 通配符的使用是相互排斥的。必须使用这二者中的某一个,不能将它们混合使用。只有在使用 Microsoft Access 数据库引擎和 Microsoft Office Access 2007 OLE DB Provider 时,才能使用 ANSI SQL 通配符。如果尝试通过 Office Access 2007 或 DAO 来使用 ANSI SQL 通配符,则它们将被解释为文字。

匹配字符

Microsoft Access SQL

ANSI SQL

任意单字符

?

_(下划线)

零个或多个字符

*

%

  • Microsoft Access SQL 的限制通常较少。例如,它允许对表达式进行分组和排序。

  • Microsoft Access SQL 支持功能更强大的表达式。

Microsoft Access SQL 的增强功能

Microsoft Access SQL 提供以下增强功能:

TRANSFORM 语句,该语句提供对交叉表查询的支持。

  • 其他 SQL 聚合函数,例如 StDevVarP

用于定义参数查询的 PARAMETERS 声明。

Microsoft Access SQL 不支持的 ANSI SQL 功能

Microsoft Access SQL 不支持以下 ANSI SQL 功能:

  • DISTINCT 聚合函数引用。例如,Microsoft Access SQL 不支持 SUM(DISTINCT columnname)。

  • LIMIT TO nn ROWS 子句(用来限制查询所返回的行数)。只能使用 WHERE 子句来限制查询的范围。



注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

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

此信息是否有帮助?

谢谢您的反馈!

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

×