O mecanismo de banco de dados do Microsoft Access SQL geralmente é compatível com ANSI -89 Level 1. No entanto, determinados recursos de SQL ANSI não são implementados no Microsoft Access SQL. Além disso, o microsoft Access SQL inclui palavras reservadas e recursos não suportados em ansi SQL.
Principais diferenças
-
O Microsoft Access SQL e o ANSI SQL cada um tem palavras e tipos de dados reservados diferentes. Usando o Microsoft OLE DB Provider, há palavras reservadas adicionais.
-
Regras diferentes se aplicam ao entre... E construct, que tem a seguinte sintaxe:
expr1 [NOT] Entre value1 e value2
No Microsoft Access SQL, value1 pode ser maior que value2; no ansi SQL, value1 deve ser igual ou inferior a value2.
-
O Microsoft Access SQL dá suporte SQL caracteres curinga ansi e caracteres curinga específicos do Microsoft Access para usar com o operador Like. O uso dos caracteres curinga ANSI e Microsoft Access é mutuamente exclusivo. Você deve usar um conjunto ou outro e não pode misturá-los. Os caracteres SQL ansi só estão disponíveis ao usar o mecanismo de banco de dados do Microsoft Access e o Provedor de BANCO de Dados do Microsoft Access OLE. Se você tentar usar os caracteres SQL ANSI por meio de Access ou DAO, eles serão interpretados como literais.
Caractere correspondente
Microsoft Access SQL
ANSI SQL
Um único caractere qualquer
?
_ (sublinhado)
Zero ou mais caracteres
*
%
-
O microsoft Access SQL geralmente é menos restritivo. Por exemplo, ele permite agrupar e ordenar em expressões.
-
O Microsoft Access SQL dá suporte a expressões mais poderosas.
Recursos avançados do Microsoft Access SQL
O Microsoft Access SQL fornece os seguintes recursos avançados:
A instrução TRANSFORM, que fornece suporte para consultas entre astabrias.
-
Funções SQL Agregadas adicionais, como StDev e VarP.
A declaração PARAMETERS para definir consultas de parâmetros.
ANSI SQL recursos não suportados no Microsoft Access SQL
O Microsoft Access SQL não oferece suporte aos seguintes recursos de SQL ANSI:
-
Referências de função agregada DISTINCT. Por exemplo, o microsoft access SQL não permite SUM(DISTINCT columnname).
-
A cláusula LIMIT TO nn ROWS usada para limitar o número de linhas retornadas por uma consulta. Você pode usar apenas o cláusula WHERE para limitar o escopo de uma consulta.