Microsoft Access-databasmotorn SQL är vanligtvis ANSI -89 Nivå 1-kompatibel. Vissa ANSI SQL-funktioner implementeras dock inte i Microsoft Access SQL. Dessutom innehåller Microsoft Access SQL reserverade ord och funktioner som inte stöds i ANSI SQL.
Stora skillnader
-
Microsoft Access SQL och ANSI SQL har var och en olika reserverade ord och datatyper. Med Microsoft OLE DB-providern finns det ytterligare reserverade ord.
-
Olika regler gäller för mellan ... Och skapa, som har följande syntax:
uttr1 [ICKE] Mellan värde1 Och värde2
I Microsoft Access SQL kan värde1 vara större än värde2. i ANSI SQL måste värdet1 vara lika med eller mindre än värde2.
-
Microsoft Access SQL stöder både ANSI SQL-jokertecken och Microsoft Access-specifika jokertecken som ska användas med operatorn Like . Användningen av jokertecken i ANSI och Microsoft Access är ömsesidigt uteslutande. Du måste använda den ena eller den andra uppsättningen och kan inte blanda dem. ANSI SQL-jokertecken är bara tillgängliga när du använder Microsoft Access-databasmotorn och Microsoft Access OLE DB-providern. Om du försöker använda ANSI SQL-jokertecken via Access eller DAO tolkas de som literaler.
Matchande tecken
Microsoft Access SQL
ANSI SQL
Ett enstaka tecken
?
_ (understreck)
Noll eller fler tecken
*
%
-
Microsoft Access SQL är i allmänhet mindre restriktivt. Den tillåter till exempel gruppering och ordning på uttryck.
-
Microsoft Access SQL har stöd för kraftfullare uttryck.
Förbättrade funktioner i Microsoft Access SQL
Microsoft Access SQL innehåller följande förbättrade funktioner:
TRANSFORM-instruktionen, som ger stöd för korsfrågor.
-
Ytterligare SQL-mängdfunktioner, till exempel Stdav och VariansP.
Deklarationen PARAMETERS för att definiera parameterfrågor.
ANSI SQL-funktioner stöds inte i Microsoft Access SQL
Microsoft Access SQL stöder inte följande ANSI SQL-funktioner:
-
DISTINCT-mängdfunktionsreferenser. Microsoft Access SQL tillåter till exempel inte SUMMA( DISTINCT-kolumnnamn).
-
Satsen LIMIT TO nn ROWS används för att begränsa antalet rader som returneras av en fråga. Du kan bara använda WHERE-sats för att begränsa omfattningen av en fråga.