Ядрото на базата данни на Microsoft Access SQL обикновено е съвместимо с ANSI -89 ниво 1. Обаче някои ANSI SQL функции не са реализирани в Microsoft Access SQL. Освен това Microsoft Access SQL включва запазени думи и функции, които не се поддържат в ANSI SQL.
Основни разлики
-
Всяка от microsoft Access SQL и ANSI SQL има различни запазени думи и типове данни. Като използвате доставчика на OLE база данни на Microsoft, има допълнителни запазени думи.
-
Различните правила важат за Between... И конструирайте, който има следния синтаксис:
израз1 [NOT] Between стойност1 And стойност2
В 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, за да ограничите обхвата на заявка.