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 SQL ANSI 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 la clausola WHERE per limitare l'ambito di una query.