Die Microsoft Access-Datenbank-Engine SQL ist im Allgemeinen ANSI-89 Level 1-kompatibel. Bestimmte ANSI SQL-Features sind in Microsoft Access SQL jedoch nicht implementiert. Außerdem enthält Microsoft Access SQL reservierte Wörter und Features, die in ANSI SQL nicht unterstützt werden.
Hauptunterschiede
-
Microsoft Access SQL und ANSI SQL verfügen jeweils über unterschiedliche reservierte Wörter und Datentypen. Bei Verwendung des Microsoft OLE DB-Anbieters gibt es zusätzliche reservierte Wörter.
-
Es gelten unterschiedliche Regeln für die ... Und -Konstrukt mit der folgenden Syntax:
expr1 [NOT] Between value1 and value2
In Microsoft Access SQL kann wert1 größer als wert2 sein. in ANSI SQL muss value1 gleich oder kleiner als wert2 sein.
-
Microsoft Access SQL unterstützt sowohl ANSI SQL-Wildcardzeichen als auch Microsoft Access-spezifische Platzhalterzeichen für die Verwendung mit dem Like-Operator . Die Verwendung der ANSI- und Microsoft Access-Wildcardzeichen schließt sich gegenseitig aus. Sie müssen einen satz verwenden und können sie nicht mischen. Die ANSI SQL-Wildcards sind nur bei Verwendung der Microsoft Access-Datenbank-Engine und des Microsoft Access OLE DB-Anbieters verfügbar. Wenn Sie versuchen, die ANSI SQL-Wildcards über Access oder DAO zu verwenden, werden sie als Literale interpretiert.
Übereinstimmende Zeichen
Microsoft Access SQL
ANSI SQL
Ein einzelnes Zeichen
?
_ (Unterstrich)
0 oder mehr Zeichen
*
%
-
Microsoft Access SQL ist im Allgemeinen weniger restriktiv. Sie ermöglicht beispielsweise das Gruppieren und Sortieren von Ausdrücken.
-
Microsoft Access SQL unterstützt leistungsfähigere Ausdrücke.
Erweiterte Features von Microsoft Access SQL
Microsoft Access SQL bietet die folgenden erweiterten Features:
Die TRANSFORM-Anweisung, die Unterstützung für Kreuztabellenabfragen bereitstellt.
-
Zusätzliche SQL-Aggregatfunktionen, z. B. StDev und VarP.
Die PARAMETERS-Deklaration zum Definieren von Parameterabfragen.
ANSI SQL-Features werden in Microsoft Access SQL nicht unterstützt
Microsoft Access SQL unterstützt die folgenden ANSI SQL-Features nicht:
-
Distinct-Aggregatfunktionsverweise. Beispielsweise lässt Microsoft Access SQL sum(DISTINCT columnname) nicht zu.
-
Die LIMIT TO nn ROWS-Klausel, die verwendet wird, um die Anzahl der von einer Abfrage zurückgegebenen Zeilen zu begrenzen. Sie können nur die WHERE-Klausel verwenden, um den Bereich einer Abfrage einzuschränken.