Sql ядра СУБД Microsoft Access, как правило, соответствует ANSI -89 уровень 1. Однако некоторые функции ANSI SQL не реализованы в Microsoft Access SQL. Кроме того, Microsoft Access SQL включает зарезервированные слова и функции, не поддерживаемые в ANSI SQL.
Основные различия
-
Microsoft Access SQL и ANSI SQL имеют разные зарезервированные слова и типы данных. С помощью поставщика Microsoft OLE DB существуют дополнительные зарезервированные слова.
-
К параметру Between применяются различные правила . И конструктив, который имеет следующий синтаксис:
expr1 [NOT] Между значением1 и значением2
В Microsoft Access SQL значение value1 может быть больше, чем значение2; в ANSI SQL значение value1 должно быть равно или меньше значения value2.
-
Microsoft Access SQL поддерживает как подстановочные знаки SQL ANSI, так и специальные подстановочные знаки Microsoft Access для использования с оператором Like . Использование подстановочных знаков ANSI и Microsoft Access является взаимоисключающим. Вы должны использовать один или другой набор и не можете смешивать их. Подстановочные знаки ANSI SQL доступны только при использовании ядра СУБД Microsoft Access и поставщика OLE DB Microsoft Access. Если вы попытаетесь использовать подстановочные знаки SQL ANSI через Access или DAO, они будут интерпретированы как литералы.
Соответствующий символ
Microsoft Access SQL
ANSI SQL
Любой символ
?
_ (подчеркивание)
Ноль или больше символов
*
%
-
Microsoft Access SQL, как правило, менее ограничен. Например, он разрешает группирование и упорядочение выражений.
-
Microsoft Access SQL поддерживает более эффективные выражения.
Расширенные возможности Microsoft Access SQL
Microsoft Access SQL предоставляет следующие расширенные функции:
Инструкция TRANSFORM, которая обеспечивает поддержку перекрестных запросов.
-
Дополнительные агрегатные функции SQL, такие как 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.