比較 Microsoft Access SQL 和 ANSI SQL

套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

Microsoft Access 資料庫引擎的 SQL 通常符合 ANSI-89 第一級標準。 然而,某些 ANSI SQL 功能並未實作於 Microsoft Access SQL 中。 此外,Microsoft Access SQL 包含保留字及 ANSI SQL 不支援的功能。

主要差異

  • Microsoft Access SQL 與 ANSI SQL 各自擁有不同的保留字與資料型態。 使用 Microsoft OLE DB Provider,則有額外的保留字。

  • Between... 的規則不同。 以及 construct,其語法如下:
    expr1 [非] 在 value1 value2 之間
    在 Microsoft Access SQL 中, 值1 可以大於 值2;在 ANSI SQL 中, value1 必須等於或小於 value2。

  • Microsoft Access SQL 支援 ANSI SQL 萬用字元及 Microsoft Access 專屬的萬用字元,以配合 Like 運算子使用。 ANSI 與 Microsoft Access 萬用字元的使用是互斥的。 你必須用其中一組,不能混用。 ANSI SQL 萬用卡僅在使用 Microsoft Access 資料庫引擎及 Microsoft Access OLE DB 提供者時可用。 如果你嘗試透過 Access 或 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 功能:

  • 差異的聚合函數參考。 例如,Microsoft Access SQL 不允許 SUM (DISTINCT 欄位名稱) 。
  • LIMIT TO nn ROWS 子句用於限制查詢回傳的列數。 你只能用 WHERE 子句來限制查詢的範圍。