Microsoft Access 数据库引擎SQL符合 ANSI -89 级别 1 标准。 但是,某些 ANSI SQL功能未在 Microsoft Access SQL。 此外,Microsoft Access SQL包括 ANSI 应用程序不支持的保留字SQL。
主要差异
-
Microsoft Access SQL 和 ANSI SQL都有不同的保留字和数据类型。 使用 Microsoft OLE DB 提供程序时,还有一些保留字。
-
不同的规则适用于 Between...构造 ,其语法如下:
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 通配符互斥。 必须使用一个集或另一个集,并且不能混合它们。 ANSI SQL通配符仅在使用 Microsoft Access 数据库引擎和 Microsoft Access OLE DB 提供程序时可用。 如果尝试通过 SQL DAO 使用 ANSI Access 通配符,则它们将被解释为文本。
匹配字符
Microsoft Access SQL
ANSI SQL
任何单字符
?
_ (下划线)
零个或多个字符
*
%
-
Microsoft Access SQL限制通常更少。 例如,它允许对表达式进行分组和排序。
-
Microsoft Access SQL支持更强大的表达式。
Enhanced Features of Microsoft Access SQL
Microsoft Access SQL提供以下增强功能:
TRANSFORM 语句,它支持交叉表查询。
-
其他SQL聚合函数,例如StDev 和VarP。
用于定义参数查询的 PARAMETERS 声明。
Microsoft Access SQL不支持的 ANSI SQL
Microsoft Access SQL不支持以下 ANSI SQL功能:
-
DISTINCT 聚合函数引用。 例如,Microsoft Access SQL不允许 SUM (DISTINCT列) 。
-
LIMIT TO nn ROWS 子句,用于限制查询返回的行数。 只能使用 WHERE 子句 来限制查询的范围。