Поделиться через


Сравнение Microsoft Access SQL и ANSI SQL

Область применения: Access 2013, Office 2013

Sql ядра СУБД Microsoft Access, как правило, соответствует ANSI-89 уровня 1. Однако некоторые функции ANSI SQL не реализованы в Microsoft Access SQL. И наоборот, Microsoft Access SQL включает зарезервированные слова и функции, не поддерживаемые в ANSI SQL.

Основные различия

  • Microsoft Access SQL и ANSI SQL имеют разные зарезервированные слова и типы данных. Дополнительные сведения см. в разделе Зарезервированные слова SQL ядра СУБД Microsoft Access и эквивалентные типы данных SQL ANSI. С помощью поставщика OLE DB ядра СУБД Microsoft Access есть дополнительные зарезервированные слова.

  • Между... И

    expr1 [NOT] Междузначением1изначением2

    В Microsoft Access SQL значение value1 может быть больше, чем значение2; в ANSI SQL значение value1 должно быть равно или меньше значения value2.

  • Microsoft Access SQL поддерживает как подстановочные знаки SQL ANSI, так и подстановочные знаки , относящиеся к ядру СУБД Microsoft Access для использования с оператором Like . Использование подстановочных знаков ANSI и ядра СУБД Microsoft Access является взаимоисключающим. Вы должны использовать один или другой набор и не можете смешивать их. Подстановочные знаки SQL ANSI доступны только при использовании ядра СУБД Microsoft Access и поставщика OLE DB ядра СУБД Microsoft Access. Если вы попытаетесь использовать подстановочные знаки SQL ANSI в Microsoft Access или DAO, они будут интерпретированы как литералы. Противоположное верно при использовании поставщика OLE DB ядра СУБД Microsoft Access.

    Соответствующий символ

    Microsoft Access SQL

    ANSI SQL

    Любой знак

    ?

    _ (знак подчеркивания)

    Ноль или более символов

    *

    %

  • Microsoft Access SQL, как правило, менее ограничен. Например, он разрешает группирование и упорядочение выражений.

  • Microsoft Access SQL поддерживает более эффективные выражения.

Расширенные возможности Microsoft Access SQL

Microsoft Access SQL предоставляет следующие расширенные функции:

  • Инструкция TRANSFORM , которая обеспечивает поддержку перекрестных запросов.

  • Дополнительные агрегатные функции, такие как StDev и VarP.

  • Объявление PARAMETERS для определения запросов параметров.

Функции ANSI SQL, не поддерживаемые в Microsoft Access SQL

Microsoft Access SQL не поддерживает следующие функции ANSI SQL:

  • Ссылки на агрегатные функции DISTINCT. Например, Microsoft Access SQL не разрешает sum(DISTINCT columnname).

  • Предложение LIMIT TO nn ROWS, используемое для ограничения количества строк, возвращаемых запросом. Для ограничения области запроса можно использовать только предложение WHERE .