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.
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] |
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:
|
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. |
|
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:
Utilize o operador AS para definir aliases de tabela na cláusula FROM:
Em seguida, pode utilizar estes aliases de tabela na sua cláusula SELECT, da seguinte forma:
|
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:
|
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 table2
ON table1.field1 = table2.field2
Veja mais informações sobre como utilizar associações numa consulta em Associar tabelas e consultas.
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.
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_offer
FROM Products UNION ALL SELECT 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.