Acessar SQL: conceitos básicos, vocabulário e sintaxe
Applies ToAccess para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Quando você deseja recuperar dados de um banco de dados, peça os dados usando linguagem SQL ou SQL. O SQL é uma linguagem computacional que se assemelha muito ao inglês, mas que os programas de banco de dados entendem. Cada consulta executada usa SQL nos bastidores.

Entender como o SQL funciona pode ajudá-lo a criar consultas melhores e pode facilitar a compreensão de como corrigir uma consulta que não está retornando os resultados desejados.

Este é um conjunto de artigos sobre o SQL do Access. Este artigo descreve o uso básico do SQL para selecionar dados e usa exemplos para ilustrar a sintaxe SQL.

Neste artigo

O que é SQL?

O SQL é uma linguagem computacional para trabalhar com conjuntos de fatos e as relações entre eles. Programas de banco de dados relacionais, como o Microsoft Office Access, usam SQL para trabalhar com dados. Ao contrário de muitas linguagens de computador, o SQL não é difícil de ler e entender, mesmo para um novato. Como muitas linguagens de computador, o SQL é um padrão internacional que é reconhecido por órgãos padrões, como ISO e ANSI.

Você usa o SQL para descrever conjuntos de dados que podem ajudá-lo a responder perguntas. Ao usar o SQL, você deve usar a sintaxe correta. Sintaxe é o conjunto de regras pelo qual os elementos de uma linguagem são combinados corretamente. A sintaxe SQL é baseada na sintaxe em inglês e usa muitos dos mesmos elementos que a sintaxe de Visual Basic for Applications (VBA).

Por exemplo, uma instrução SQL simples que recupera uma lista de sobrenomes para contatos cujo primeiro nome é Mary pode se assemelhar a isso:

SELECT Last_NameFROM ContactsWHERE First_Name = 'Mary';

Observação: O SQL não é usado apenas para manipular dados, mas também para criar e alterar o design de objetos de banco de dados, como tabelas. A parte do SQL usada para criar e alterar objetos de banco de dados é chamada DDL (linguagem de definição de dados). Este tópico não aborda o DDL. Para obter mais informações, consulte o artigo Criar ou modificar tabelas ou índices usando uma consulta de definição de dados.

Instruções SELECT

Para descrever um conjunto de dados usando SQL, você grava uma instrução SELECT. Uma instrução SELECT contém uma descrição completa de um conjunto de dados que você deseja obter de um banco de dados. Isso inclui o seguinte:

  • Quais tabelas contêm os dados.

  • Como os dados de fontes diferentes estão relacionados.

  • Quais campos ou cálculos produzirão os dados.

  • Critérios que os dados devem corresponder para serem incluídos.

  • Se e como classificar os resultados.

Cláusulas SQL

Como uma frase, uma instrução SQL tem cláusulas. Cada cláusula executa uma função para a instrução SQL. Algumas cláusulas são necessárias em uma instrução SELECT. A tabela a seguir lista as cláusulas SQL mais comuns.

Cláusula SQL

O que ela faz

Obrigatório

SELECT

Listas os campos que contêm dados de interesse.

Sim

FROM

Listas as tabelas que contêm os campos listados na cláusula SELECT.

Sim

WHERE

Especifica critérios de campo que devem ser atendidos por cada registro a ser incluído nos resultados.

Não

ORDER BY

Especifica como classificar os resultados.

Não

GROUP BY

Em uma instrução SQL que contém funções agregadas, lista campos que não são resumidos na cláusula SELECT.

Somente se houver esses campos

HAVING

Em uma instrução SQL que contém funções agregadas, especifica condições que se aplicam a campos resumidos na instrução SELECT.

Não

Termos SQL

Cada cláusula SQL é composta por termos – comparáveis a partes da fala. A tabela a seguir lista tipos de termos SQL.

Termo SQL

Parte comparável da fala

Explicação

Exemplo

Identificador

Substantivo

Um nome que você usa para identificar um objeto de banco de dados, como o nome de um campo.

Clientes. [Número de telefone]

operador

verbo ou adverb

Um palavra-chave que representa uma ação ou modifica uma ação.

AS

constante

Substantivo

Um valor que não é alterado, como um número ou NULL.

42

expressão

Adjetivo

Uma combinação de identificadores, operadores, constantes e funções avaliadas como um único valor.

>= Produtos. [Preço unitário]

Início da Página

Cláusulas básicas do SQL: SELECT, FROM e WHERE

Uma instrução SQL usa o formulário geral:

SELECT field_1FROM table_1WHERE criterion_1;

Observações: 

  • O Access ignora quebras de linha em uma instrução SQL. No entanto, considere usar uma linha para cada cláusula para ajudar a melhorar a legibilidade de suas instruções SQL para você e outras pessoas.

  • Cada instrução SELECT termina com um ponto semiso (;). O ponto semiautônomos pode aparecer no final da última cláusula ou em uma linha por si só no final da instrução SQL.

Um exemplo no Access

O seguinte ilustra como uma instrução SQL para uma consulta de seleção simples pode ser semelhante no Access:

Guia Objeto SQL mostrando uma instrução SELECT

1. Cláusula SELECT

2. Cláusula FROM

3. Cláusula WHERE

Esta instrução SQL de exemplo diz "Selecione os dados armazenados nos campos chamados Endereço de email e Empresa da tabela chamada Contatos, especificamente os registros nos quais o valor do campo City é Seattle.".

Vamos examinar o exemplo, uma cláusula por vez, para ver como funciona a sintaxe SQL.

A cláusula SELECT

SELECT [E-mail Address], Company

Esta é a cláusula SELECT. Ele consiste em um operador (SELECT) seguido por dois identificadores ([Endereço de email] e Empresa).

Se um identificador contiver espaços ou caracteres especiais (como "Endereço de email"), ele deverá ser fechado em colchetes.

Uma cláusula SELECT não precisa dizer quais tabelas contêm os campos e não pode especificar quaisquer condições que devem ser atendidas pelos dados a serem incluídos.

A cláusula SELECT sempre aparece na frente da cláusula FROM em uma instrução SELECT.

A cláusula FROM

FROM Contacts

Esta é a cláusula FROM. Ele consiste em um operador (FROM) seguido por um identificador (Contatos).

Uma cláusula FROM não lista os campos a serem selecionados.

A cláusula WHERE

WHERE City="Seattle"

Esta é a cláusula WHERE. Ele consiste em um operador (WHERE) seguido por uma expressão (City="Seattle").

Observação: Ao contrário das cláusulas SELECT e FROM, a cláusula WHERE não é um elemento necessário de uma instrução SELECT.

Você pode realizar muitas das ações que o SQL permite que você faça usando cláusulas SELECT, FROM e WHERE. Mais informações sobre como você usa essas cláusulas são apresentadas nestes artigos adicionais:

Início da Página

Classificando os resultados: ORDER BY

Assim como o Microsoft Excel, o Access permite classificar os resultados da consulta em uma planilha de dados. Você também pode especificar na consulta como deseja classificar os resultados quando a consulta é executada usando uma cláusula ORDER BY. Se você usar uma cláusula ORDER BY, ela será a última cláusula na instrução SQL.

Uma cláusula ORDER BY contém uma lista dos campos que você deseja usar para classificação, na mesma ordem em que deseja aplicar as operações de classificação.

Por exemplo, suponha que você queira que seus resultados sejam classificados primeiro pelo valor do campo Empresa em ordem decrescente e , se houver registros com o mesmo valor para a Empresa, classificados em seguida pelos valores no campo Endereço de email em ordem crescente. Sua cláusula ORDER BY se assemelharia ao seguinte:

ORDER BY Company DESC, [E-mail Address]

Observação: Por padrão, o Access classifica valores em ordem crescente (A-Z, menor a maior). Use o palavra-chave DESC para classificar valores em ordem decrescente.

Para obter mais informações sobre a cláusula ORDER BY, consulte o tópico Cláusula ORDER BY.

Início da Página

Trabalhando com dados resumidos: GROUP BY e HAVING

Às vezes, você deseja trabalhar com dados resumidos, como o total de vendas em um mês ou os itens mais caros em um inventário. Para fazer isso, você aplica um função de agregação a um campo em sua cláusula SELECT. Por exemplo, se você quiser que sua consulta mostre a contagem de endereços de email listados para cada empresa, sua cláusula SELECT poderá se assemelhar ao seguinte:

SELECT COUNT([E-mail Address]), Company

As funções de agregação que você pode usar dependem do tipo de dados que está no campo ou expressão que você deseja usar. Para obter mais informações sobre as funções de agregação disponíveis, consulte o artigo SqL Aggregate Functions.

Especificando campos que não são usados em uma função de agregação: a cláusula GROUP BY

Ao usar funções de agregação, você geralmente também deve criar uma cláusula GROUP BY. Uma cláusula GROUP BY lista todos os campos aos quais você não aplica uma função de agregação. Se você aplicar funções de agregação a todos os campos em uma consulta, não precisará criar a cláusula GROUP BY.

Uma cláusula GROUP BY segue imediatamente a cláusula WHERE ou a cláusula FROM se não houver nenhuma cláusula WHERE. Uma cláusula GROUP BY lista os campos como eles aparecem na cláusula SELECT.

Por exemplo, continuando o exemplo anterior, se sua cláusula SELECT aplicar uma função de agregação a [Endereço de email] mas não à Empresa, sua cláusula GROUP BY se assemelharia ao seguinte:

GROUP BY Company

Para obter mais informações sobre a cláusula GROUP BY, consulte o tópico Cláusula GROUP BY.

Limitando valores agregados usando critérios de grupo: a cláusula HAVING

Se você quiser usar critérios para limitar seus resultados, mas o campo ao qual deseja aplicar critérios é usado em uma função de agregação, não é possível usar uma cláusula WHERE. Em vez disso, você usa uma cláusula HAVING. Uma cláusula HAVING funciona como uma cláusula WHERE, mas é usada para dados agregados.

Por exemplo, suponha que você use a função AVG (que calcula um valor médio) com o primeiro campo em sua cláusula SELECT:

SELECT COUNT([E-mail Address]), Company

Se você quiser que a consulta restrinja os resultados com base no valor dessa função COUNT, não será possível usar um critério para esse campo na cláusula WHERE. Em vez disso, você coloca os critérios em uma cláusula HAVING. Por exemplo, se você quiser apenas que a consulta retorne linhas se houver mais de um endereço de email associado à empresa, a cláusula HAVING poderá se assemelhar ao seguinte:

HAVING COUNT([E-mail Address])>1

Observação: Uma consulta pode ter uma cláusula WHERE e uma cláusula HAVING – critérios para campos que não são usados em uma função de agregação vão na cláusula WHERE e os critérios para campos usados com funções agregadas vão na cláusula HAVING.

Para obter mais informações sobre a cláusula HAVING, consulte o tópico Cláusula HAVING.

Início da Página

Combinando resultados de consulta: UNION

Quando você deseja examinar todos os dados retornados por várias consultas selecionadas semelhantes em conjunto, como um conjunto combinado, você usa o operador UNION.

O operador UNION permite combinar duas instruções SELECT em uma. As instruções SELECT que você combina devem ter o mesmo número de campos de saída, na mesma ordem, e com os mesmos tipos de dados ou compatíveis. Quando você executa a consulta, os dados de cada conjunto de campos correspondentes são combinados em um campo de saída, de modo que a saída de consulta tenha o mesmo número de campos que cada uma das instruções selecionadas.

Observação: Para fins de uma consulta sindical, os tipos de dados Número e Texto são compatíveis.

Ao usar o operador UNION, você também pode especificar se os resultados da consulta devem incluir linhas duplicadas, se houver alguma, usando a palavra-chave ALL.

A sintaxe SQL básica para uma consulta sindical que combina duas instruções SELECT é a seguinte:

SELECT field_1FROM table_1UNION [ALL]SELECT field_aFROM table_a;

Por exemplo, suponha que você tenha uma tabela chamada Produtos e outra tabela chamada Serviços. Ambas as tabelas têm campos que contêm o nome do produto ou serviço, o preço, a garantia ou a disponibilidade de garantia e se você oferece o produto ou serviço exclusivamente. Embora a tabela Produtos armazene informações de garantia e a tabela Serviços armazene informações de garantia, as informações básicas são as mesmas (se um produto ou serviço específico inclui uma promessa de qualidade). Você pode usar uma consulta sindical, como a seguinte, para combinar os quatro campos das duas tabelas:

SELECT name, price, warranty_available, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee_available, exclusive_offerFROM Services;

Para obter mais informações sobre como combinar instruções SELECT usando o operador UNION, consulte Combinar os resultados de várias consultas selecionadas usando uma consulta sindical.

Início da Página

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.