Microsoft Jet SQL 和 ANSI SQL 的比较

Microsoft Jet 数据库引擎 SQL 和 ANSI SQL 的比较

Microsoft Jet 数据库引擎 SQL通常属于 ANSI-89 Level 1。然而,ANSI SQL 的某些功能在 Microsoft Jet SQL 中没有实现。随着 Microsoft Jet 4.X 版的发行,可以看出 Microsoft OLE DB Provider for Jet 使用了更多的 ANSI-92 SQL 语法。相反地,在 ANSI SQL 中也不支持 Microsoft Jet SQL 所包含的某些保留字和性能。

主要的差异
?Microsoft Jet SQL 和 ANSI SQL 都有不同的保留字和数据类型。欲知更多信息请看 Microsoft Jet 数据库引擎 SQL 保留字s等效的 ANSI SQL数据类型。将 Microsoft OLE DB Provider for Jet 与 Jet 4.X 协同使用,会有额外的保留字。
?Between...And 的构造应用了不同的规则,语法如下:

expr1 [NOT] Between value1 And value2

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

?Microsoft Jet SQL支持 ANSI SQL 通配符 和 Microsoft Jet-specific 通配符Like 运算符一起使用。 ANSI或 Microsoft Jet 通配符 是互相排斥的。你只能用其中一组,不能同时使用。仅当使用 Jet 4.X 和 Microsoft OLE DB Provider for Jet 时,ANSI SQL 通配符才可用。若尝试通过 Microsoft Access 或 DAO 使用 ANSI SQL 通配符,则会将其解释为原义字符。当使用 Microsoft OLE DB Provider for Jet 和 Jet 4.X 时,情形恰好相反。

 

符合字符

Microsoft Jet SQL

ANSI SQL

任何单一字符

?

_(下划线)

零个或多个字符

*

%

 

?Microsoft Jet SQL 通常限制的比较少。例如,它允许在表达式中进行分组和排序。
?Microsoft Jet SQL 提供了更强有力的表达式。
Microsoft Jet SQL 的加强功能

Microsoft Jet SQL 提供了下列加强功能:

    TRANSFORM 语句支持连接查询

?附加合计函数s, 如 StDev VarP

    PARAMETERS说明语句定义参数查询

Microsoft Jet SQL 不支持的 ANSI SQL 功能

Microsoft Jet SQL 不支持下列 ANSI SQL 的功能:

?DISTINCT 合计函数引用。例如,Microsoft Jet SQL 不允许 SUM(DISTINCT 字段名)。
?用来限制查询返回行数的 LIMIT TO nn ROWS 子句。你可以只用 WHERE 子句限定查询的范围。
请参阅

等效的 ANSI SQL 数据类型

Microsoft Jet 数据库引擎 SQL 的保留字

Like 运算符 (Microsoft Jet SQL)

SQL 合计函数(SQL)

Microsoft Jet 数据库引擎 SQL 的数据类型

在字符串比较中使用通配符