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 Wildcardzeichen zur 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 Umfang einer Abfrage einzuschränken.