Il motore di database SQL di Microsoft Access è in genere compatibile con ANSI -89 livello 1. Tuttavia, alcune funzionalità SQL ANSI non sono implementate in SQL di Microsoft Access. Inoltre, SQL di Microsoft Access include parole riservate e funzionalità non supportate in SQL ANSI.
Principali differenze
-
Le funzioni SQL di Microsoft Access e SQL ANSI hanno ognuna parole riservate e tipi di dati diversi. Usando il provider Microsoft OLE DB, sono disponibili altre parole riservate.
-
Regole diverse si applicano a Between... E costrutto, che ha la seguente sintassi:
espr1 [NOT] Between valore1 And valore2
In Sql di Microsoft Access , valore1 può essere maggiore di valore2; in SQL ANSI , valore1 deve essere uguale o minore di valore2.
-
Microsoft Access SQL supporta sia caratteri jolly ANSI SQL che caratteri jolly specifici di Microsoft Access da usare con l'operatore Like . L'uso dei caratteri jolly ANSI e Microsoft Access si esclude a vicenda. È necessario usare un set o l'altro e non è possibile mescolarli. I caratteri jolly SQL ANSI sono disponibili solo quando si usa il motore di database di Microsoft Access e il provider OLE DB di Microsoft Access. Se si prova a usare i caratteri jolly SQL ANSI tramite Access o DAO, verranno interpretati come caratteri letterali.
Carattere corrispondente
Microsoft Access SQL
ANSI SQL
Qualsiasi carattere singolo
?
_ (carattere di sottolineatura)
Zero o più caratteri
*
%
-
Microsoft Access SQL è in genere meno restrittivo. Ad esempio, consente il raggruppamento e l'ordinamento delle espressioni.
-
Microsoft Access SQL supporta espressioni più potenti.
Funzionalità avanzate di SQL per Microsoft Access
Microsoft Access SQL offre le caratteristiche avanzate seguenti:
Istruzione TRANSFORM, che fornisce supporto per le query a campi incrociati.
-
Funzioni di aggregazione SQL aggiuntive, ad esempio StDev e VarP.
Dichiarazione PARAMETERS per la definizione delle query con parametri.
Funzionalità SQL ANSI non supportate in Microsoft Access SQL
Microsoft Access SQL non supporta le caratteristiche SQL ANSI seguenti:
-
Riferimenti a funzioni di aggregazione DISTINCT. Ad esempio, il linguaggio SQL di Microsoft Access non consente SUM(DISTINCT nomecolondo).
-
Clausola LIMIT TO nn ROWS usata per limitare il numero di righe restituite da una query. È possibile usare solo il clausola WHERE per limitare l'ambito di una query.