Editar instruções SQL para aperfeiçoar os resultados da consulta

Editar instruções SQL para aperfeiçoar os resultados da consulta

Nota: Queremos fornecer-lhe os conteúdos de ajuda mais recentes o mais rapidamente possível e no seu idioma. Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode informar-nos se as informações foram úteis no final desta página? Eis o artigo em inglês para referência.

Se as suas consultas não estão a funcionar como gostaria, a adição de algumas instruções SQL básicas podem ajudar a obter melhores resultados. Vejamos alguns tipos de instruções SQL e as cláusulas ou partes que pode editar para obter os resultados que procura.

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

Personalizar a cláusula SELECT

Personalizar a cláusula FROM

Personalizar a cláusula WHERE

Personalizar com o operador UNION

Criar uma instrução Select

Uma instrução select de SQL tem duas ou três cláusulas. A cláusula SELECT diz à base de dados onde procurar os dados e pede-lhe que devolva um resultado específico.

Nota: As instruções SELECT terminam sempre com um ponto e vírgula (;), seja no fim da última cláusula ou numa linha em separado no fim da instrução SQL.

A instrução select seguinte instrui o Access de modo a obter as informações das colunas Endereço de Correio Eletrónico e Empresa, localizadas na tabela Contactos, mas apenas para os casos onde encontra especificamente "Sintra" na coluna Localidade.

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 enumera as colunas que contêm os dados que quer utilizar e tem um operador (SELECT) seguidos por dois identificadores (Endereço de Correio Eletrónico 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, há um operador (FROM) seguido por um identificador (Contactos).

3. A cláusula WHERE é uma cláusula opcional. O exemplo tem um operador (WHERE) seguido por uma expressão (Localidade="Sintra").

Para mais informações sobre consultas selecionar, consulte o artigo criar uma consulta selecionar simple.

Eis uma lista de cláusulas SQL comuns:

Cláusula SQL

O que faz

Obrigatório ?

SELECT

Lista os campos que contenham dados de interesse.

Sim

FROM

Lista as tabelas que contenham os campos listados na cláusula SELECT.

Sim

WHERE

Especifica os critérios de campo que têm de ser correspondidos por cada registo para que sejam incluídos nos resultados.

Não

ORDER BY

Específica a ordenação dos resultados.

Não

GROUP BY

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

Apenas se esses campos existirem

HAVING

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

Não

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

Termo SQL

Definição

Exemplo

identificador

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

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

operador

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

AS

constante

Um valor que não se altera, como um número ou NULO.

42

expressão

Uma combinação de identificadores, operadores, constantes e funções que gera apenas um valor.

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

Início da Página

Personalizar a cláusula SELECT

Personalizar

Exemplo

Para ver apenas valores distintos.

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

Por exemplo, os seus clientes são de escritórios diferentes e alguns têm o mesmo número de telefone. Se quiser que um número de telefone apareça uma única vez, a sua cláusula SELECT seria assim:

SELECT DISTINCT [txtCustomerPhone] 

Para alterar a forma como um identificador é mostrado na vista de folha de dados, melhorando a leitura.

Utilize o operador AS (uma palavra-chave que represente ou modifique uma ação) com um alias de campo na sua cláusula SELECT. Um alias de campo é um nome que atribui a um campo para tornar os resultados mais fáceis de ler.

SELECT [txtCustPhone] AS [Customer Phone]

Personalizar a cláusula FROM

Personalizar

Exemplo

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

Para selecionar dados de dois campos, ambos com o nome ID, um dos quais vem da tabela tblCliente e o outro da tabela tblPedido:

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

Utilize o operados AS para definir os alias das tabelas na cláusula FROM:

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

Pode utilizar estes alias 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 fontes de dados diferentes num único resultado ou para especificar se quer ou não incluir os registos de uma das tabelas se não existirem registos correspondentes na tabela relacionada.

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

Eis o aspeto que a cláusula FROM poderá ter:

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

Sobre a 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 onde existe um valor comum em ambas as tabelas associadas.

As associações externas especificam se os dados sem valores em comum devem ser incluidos. As associações externas são direcionais, o que significa que pode especificar se quer incluir todos os registos da primeira tabela especificada na associação (chamada associação esquerda) ou se quer incluir todos os registos da segunda tabela na associação (chamada associação direita). Uma associação externa tem a seguinte sintaxe SQL:

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

Consulte o artigo obter mais informações sobre como utilizar associações numa consulta de 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 base é limitar os resultados de uma consulta. Imagine que quer localizar o número de telefone de um cliente e só se consegue lembrar do seu apelido como sendo Bento. Neste exemplo, os apelidos são armazenados num campo Apelido, o que signidica que a sintaxe SQL seria:

WHERE [LastName]='Bagel'

Também pode utilizar a cláusula WHERE para reunir origens de dados para colunas que tenham dados correspondentes, mas tipos de dados diferentes. Esta funcionalidade poderá ser útil uma vez que não é possível 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 de uma tabela Funcionários apenas quando o tipo de ativo no campo tipos de ativos da tabela Ativos tiver o número 3 no campo Quantidade da tabela de Funcionários, a sua cláusula WHERE terá o seguinte aspeto:

WHERE field1 LIKE field2

Importante:  Numa cláusula WHERE, não é possível especificar critérios para um campo que é usado com uma função de agregação. 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 de resultados combinados de várias consultas selecionar semelhantes. Por exemplo, se a sua base de dados tiver uma tabela Produtos e uma tabela Serviços e ambas tiverem três campos: oferta exclusiva ou produto ou serviço, preço, garantia de vendedor ou garantia. Apesar de a tabela Produtos armazenar informação de garantia de vendedor e a tabela de Serviços armazenar informação de garantia, a informação base é a mesma. 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 só campo de saída. Para incluir linhas duplicadas nos resultados utilize o operador ALL.

Nota:  A instrução Select deve 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 os fins de uma consulta união, os tipos de dados de Número e Texto são compatíveis.

Para mais informação acerca de consultas união, consulte o artigo sobre como utilizar uma consulta união para ver os resultados unificados de várias consultas.

Início da Página

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×