Sql обробника баз даних Microsoft Access зазвичай відповідає стандарту ANSI -89 рівня 1. Проте деякі функції ANSI SQL не реалізовано в Microsoft Access SQL. Крім того, Microsoft Access SQL містить зарезервовані слова та функції, які не підтримуються в ANSI SQL.
Основні відмінності
-
Microsoft Access SQL і ANSI SQL мають різні зарезервовані слова та типи даних. Використання постачальника баз даних OLE для Microsoft містить додаткові зарезервовані слова.
-
Різні правила застосовуються до between ... І конструкція, яка має такий синтаксис:
вираз1 [NOT] Between value1 And value2
У Microsoft Access SQL значення1 може бути більшим за значення2; в ANSI SQL значення1 має бути дорівнювати або бути меншим за значення2.
-
Microsoft Access SQL підтримує символи узагальнення ANSI SQL і спеціальні символи узагальнення Microsoft Access для використання з оператором Like . Використання символів узагальнення ANSI та Microsoft Access є взаємовиключним. Ви повинні використовувати один набір або інший і не можуть змішувати їх. Символи узагальнення ANSI SQL доступні, лише якщо використовується обробник баз даних Microsoft Access і постачальник баз даних OLE Microsoft Access. Якщо спробувати використати символи узагальнення ANSI SQL через 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 ім'я стовпця).
-
Речення LIMIT TO nn ROWS, яке використовується для обмеження кількості рядків, повернутих запитом. Обмежити область запиту можна лише речення WHERE.