Editar instruções SQL para aperfeiçoar os resultados da consulta
Applies ToAccess para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Se as suas consultas não estiverem a funcionar o suficiente, adicionar algumas instruções de SQL básicas pode ajudar a focar os seus resultados. Vamos analisar alguns tipos de instruções SQL e as cláusulas ou partes que poderá editar para obter os resultados pretendidos.

Nota:  Este artigo não se aplica às aplicações Web do Access – o tipo de base de dados que cria com o Access e publica online.

Neste artigo

Criar uma instrução Select

Uma instrução de seleção de SQL tem duas a três cláusulas. A cláusula SELECT indica à base de dados onde procurar os dados e pede-lhe para devolver um resultado específico.

Nota:  As instruções SELECT terminam sempre com um ponto e vírgula (;) no final da última cláusula ou numa linha por si só no final da instrução SQL.

A seguinte declaração selecionar pede ao Access para obter informações das colunas Endereço de E-mail e Empresa, da tabela Contactos, especificamente onde encontra "Seattle" na coluna Cidade.

Separador do objeto SQL com a instrução SELECT

A consulta acima tem três cláusulas SELECT, FROM e WHERE.

1. A cláusula SELECT lista as colunas que contêm os dados que pretende utilizar e tem um operador (SELECT) seguido de dois identificadores (Endereço de E-mail e Empresa). Se um identificador tiver espaços ou carateres especiais (como "Endereço de Correio Eletrónico"), coloque o identificador entre parênteses retos.

2. A cláusula FROM identifica a tabela de origem. Neste exemplo, tem um operador (FROM) seguido de um identificador (Contactos).

3. A cláusula WHERE é uma cláusula opcional. O exemplo tem um operador (WHERE) seguido de uma expressão (City="Seattle").

Para obter mais informações sobre consultas selecionadas, consulte Criar uma consulta selecionar simples.

Eis uma lista de cláusulas SQL comuns:

Cláusula SQL

O que faz

Necessário ?

SELECT

Lista os campos que contêm dados de interesse.

Sim

FROM

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

Sim

WHERE

Especifica critérios de campo que têm de ser cumpridos por cada registo a incluir nos resultados.

Não

ORDENAR POR

Especifica como ordenar os resultados.

Não

GROUP BY

Numa instrução SQL que contém funções de agregação, lista campos que não estão resumidos na cláusula SELECT.

Apenas se existirem esses campos

HAVING

Numa instrução SQL que contém funções de agregação, especifica as condições que se aplicam aos campos resumidos na instrução SELECT.

Não

Cada cláusula SQL é composta por termos. Eis uma lista de alguns termos comuns do SQL.

Termo SQL

Definição

Exemplo

identificador

Um nome que utiliza para identificar um objeto de base de dados, como o nome da coluna.

[Endereço de Correio Eletrónico] e Empresa

operador

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

AS

constante

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

42

expressão

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

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

Início da Página

Personalizar a cláusula SELECT

Personalizar

Exemplo

Para ver apenas os valores distintos.

Utilize a palavra-chave DISTINCT na cláusula SELECT.

Por exemplo, se os seus clientes forem de várias sucursais diferentes e alguns tiverem o mesmo número de telefone e quiser ver apenas um número de telefone listado uma vez, a cláusula SELECT seria a seguinte:

SELECT DISTINCT [txtCustomerPhone] 

Para alterar a forma como um identificador aparece na vista de folha de dados para melhorar a legibilidade.

Utilize o operador AS (uma palavra-chave que representa uma ação ou modifica uma ação) com um alias de campo na cláusula SELECT. Um alias de campo é um nome que atribui a um campo para facilitar a leitura dos resultados.

SELECT [txtCustPhone] AS [Customer Phone]

Personalizar a cláusula FROM

Personalizar

Exemplo

Pode utilizar um alias de tabela ou um nome diferente que atribua a uma tabela numa instrução selecionar. Um alias de tabela é útil se o nome da tabela for longo, especialmente quando tem vários campos com o mesmo nome de tabelas diferentes.

Para selecionar dados de dois campos, ambos com o nome ID, um dos quais é proveniente da tabela tblCustomer e o outro da tabela tblOrder:

SELECT [tblCustomer].[ID],        [tblOrder].[ID]

Utilize o operador AS para definir aliases de tabela na cláusula FROM:

FROM [tblCustomer] AS [C],      [tblOrder] AS [O] 

Em seguida, pode utilizar estes aliases de tabela na sua cláusula SELECT, da seguinte forma:

SELECT [C].[ID],        [O].[ID]

Utilize associações para combinar pares de registos de duas origens de dados num único resultado ou para especificar se deve incluir registos de uma tabela se não existir um registo correspondente na tabela relacionada.

Associe as tabelas para que a consulta combine os itens das tabelas e exclua os itens quando não existe um registo correspondente na outra tabela

Eis o aspeto da cláusula FROM:

FROM [tblCustomer] INNER JOIN [tblOrder]ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID] 

Acerca da utilização de associações

Existem dois tipos de associações, associações internas e externas. As associações internas são mais comuns nas consultas. Quando executa uma consulta com uma associação interna, o resultado mostra apenas os itens em que existe um valor comum em ambas as tabelas associadas.

As associações externas especificam se devem incluir dados em que não existe nenhum valor comum. As associações externas são direcionais, o que significa que pode especificar se deve incluir todos os registos da primeira tabela especificada na associação (denominada associação à esquerda) ou incluir todos os registos da segunda tabela na associação (denominado associação à direita). Uma associação externa tem a seguinte sintaxe SQL:

FROM table1 [ LEFT | RIGHT ] JOIN table2ON table1.field1 = table2.field2

Veja mais informações sobre como utilizar associações numa consulta em Associar tabelas e consultas.

Início da Página

Personalizar a cláusula WHERE

A cláusula WHERE inclui critérios que ajudam a limitar o número de itens devolvidos numa consulta. Veja exemplos de critérios de consulta e como funcionam.

Um exemplo de como pode personalizar a cláusula WHERE básica é limitar os resultados de uma consulta; Suponha que pretende localizar o número de telefone de um cliente e só se lembra do apelido como Bagel. Neste exemplo, os apelidos são armazenados num campo Apelido, pelo que a sintaxe SQL seria:

WHERE [LastName]='Bagel'

Utilize a cláusula WHERE também para combinar origens de dados para colunas que tenham dados correspondentes, mas tipos de dados diferentes. Isto é útil, uma vez que não pode criar uma associação entre campos com tipos de dados diferentes. Utilize um campo como critério para o outro campo, com a palavra-chave LIKE . Por exemplo, se quiser utilizar dados de uma tabela Ativos e tabela Funcionários, apenas quando o tipo de recurso no campo de tipo de recurso da tabela Ativos tiver o número 3 no campo Quantidade da tabela Funcionários, eis o aspeto da cláusula WHERE:

WHERE field1 LIKE field2

Importante:  Não pode especificar critérios para um campo utilizado com uma função de agregação numa cláusula WHERE. Em alternativa, utilize uma cláusula HAVING para especificar critérios para campos agregados.

Início da Página

Personalizar com o operador UNION

Utilize o operador UNION quando quiser ver uma vista combinada dos resultados de várias consultas de seleção semelhantes. Por exemplo, se a base de dados tiver uma tabela Produtos e uma tabela Serviços e ambos tiverem três campos: oferta exclusiva ou produto ou serviço, preço, garantia ou garantia. 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. Pode utilizar uma consulta união para combinar os três campos das duas tabelas da seguinte forma:

SELECT name, price, warranty, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee, exclusive_offer FROM Services;

Quando executa a consulta, os dados de cada conjunto de campos correspondentes são combinados num único campo de saída. Para incluir linhas duplicadas nos resultados, utilize o operador ALL.

Nota:  A instrução Select tem de ter o mesmo número de campos de saída, pela mesma ordem e com os mesmos tipos de dados ou tipos de dados compatíveis. Para efeitos de uma consulta união, os tipos de dados Número e Texto são compatíveis.

Para obter mais informações sobre as consultas União, veja Utilizar uma consulta união para ver um resultado unificado de várias consultas.

Início da Página

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.