SQL do Access: conceitos básicos, vocabulário e sintaxe

SQL do Access: conceitos básicos, vocabulário e sintaxe

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.

Quando quiser obter dados a partir de uma base de dados, peça para os dados utilizando Structured Query Language ou SQL. SQL é uma linguagem de computador que se assemelha à inglês, mas que compreender de programas de base de dados. Cada consulta que executar utiliza SQL nos bastidores.

Noções sobre como funciona a SQL pode ajudar a criar consultas melhor e pode ser mais fácil de compreender como corrigir uma consulta que não está a devolver os resultados que pretende.

Este é um de um conjunto de artigos sobre SQL do Access. Este artigo descreve a utilização básica de SQL para selecionar dados e utilize os exemplos para ilustrar uma sintaxe SQL.

Neste artigo

O que é SQL?

Cláusulas SQL básicas: SELECT, FROM e em que

Ordenar os resultados: por ordem

Trabalhar com dados resumidos: Agrupar por e HAVING

Combinar os resultados da consulta: União

O que é SQL?

SQL é um idioma do computador para trabalhar com conjuntos de factos e as relações entre elas. Programas de base de dados relacionais, como o Microsoft Office Access, utilizam SQL para trabalhar com dados. Ao contrário de vários idiomas do computador, SQL não é difícil de ler e compreender, mesmo para um utilizador principiante. Como vários idiomas do computador, SQL é uma norma internacional que é reconhecida pelo normalização como ISO e ANSI.

Utilizar o SQL para descrever conjuntos de dados que podem ajudar a responder a perguntas. Quando utiliza SQL, tem de utilizar a sintaxe correta. Sintaxe é o conjunto de regras pelo qual os elementos de um idioma são combinados corretamente. Sintaxe SQL é baseado no sintaxe em inglês e utiliza muitos dos mesmos elementos como do Visual Basic para sintaxe Applications (VBA).

Por exemplo, uma instrução de SQL simple que obtém uma lista dos nomes dos últimos para contactos cujo nome próprio está Mary poderá um aspeto semelhante ao seguinte:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Nota: SQL não é utilizado apenas para manipular os dados, mas também para criar e alterar a estrutura de objetos de base de dados, tais como tabelas. A parte do SQL que é utilizado para criar e alterar objectos de base de dados é designado por definição de dados (data Definition language). Este tópico não aborda a DDL. Para obter mais informações, consulte o artigo criar ou modificar tabelas ou índices utilizando uma consulta de definição de dados.

Instruções SELECT

Para descrever um conjunto de dados utilizando SQL, escreva uma instrução SELECT. Uma instrução SELECT contém uma descrição completa de um conjunto de dados que pretende obter a partir de uma base de dados. Isto inclui o seguinte:

  • O que as tabelas contêm os dados.

  • Como está relacionada com dados de diferentes origens.

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

  • Critérios que dados têm de corresponder para ser incluídos.

  • Se e como ordenar os resultados.

Cláusulas SQL

Como uma frase, uma instrução de SQL tem cláusulas. Cada cláusula executa uma função para a instrução de SQL. Algumas cláusulas são necessários numa instrução SELECT. A tabela seguinte lista de cláusulas SQL mais 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

Termos SQL

Cada cláusula SQL é composta por termos — comparável aos peças automática no separador base. A tabela seguinte lista de tipos de termos SQL.

Termo SQL

Comparável peça automática no separador Base

Definição

Exemplo

identificador

substantivo

Um nome que utiliza para identificar um objeto de base de dados, tal como o nome de um campo.

Clientes. [Número de telefone]

operador

Verbo ou advérbio

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

AS

constante

substantivo

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

42

expressão

adjetivo

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

Cláusulas SQL básicas: SELECT, FROM e em que

Uma instrução de SQL leva-o até o formato geral:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Notas: 

  • O Access ignora as quebras de linha numa instrução SQL. No entanto, considere utilizar uma linha para cada cláusula para ajudar a melhorar a legibilidade das instruções SQL para si e para outras pessoas.

  • Cada instrução SELECT termina com um ponto e vírgula (;)). A ponto e vírgula pode aparecer no final da última cláusula ou numa linha por si só, no fim da instrução SQL.

Um exemplo no Access

O seguinte ilustra a uma instrução SQL para uma consulta selecionar simples aspeto no Access:

Separador do objeto SQL com a instrução SELECT

1. cláusula SELECT

2. cláusula FROM

3. cláusula WHERE

Este exemplo instrução SQL lê "Selecione os dados que estão armazenados nos campos endereço de correio eletrónico empresa para e o nome a partir da tabela denominada contactos, especificamente esses mesmos registos em que o valor do campo Localidade for Seattle."

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

A cláusula SELECT

SELECT [E-mail Address], Company

Esta é a cláusula SELECT. É constituído por um operador (seleccione) seguido por dois identificadores ([endereço de correio eletrónico] e empresa).

Se um identificador contiver espaços ou carateres especiais (tais como "endereço de correio electrónico"), tem de ser colocada entre parênteses Retos.

Uma cláusula SELECT não tem a apresentamos as tabelas que contêm os campos de e -não é possível especificar quaisquer condições que devem ser cumpridas pelos dados que devem ser incluídos.

A cláusula SELECT é sempre apresentado atrás da cláusula FROM numa instrução SELECT.

A cláusula FROM

FROM Contacts

Esta é a cláusula FROM. É constituída um operador (FROM) seguido de um identificador (contactos).

Uma cláusula FROM não lista os campos a ser selecionado.

A cláusula WHERE

WHERE City="Seattle"

Esta é a cláusula WHERE. É constituído por um operador (onde) seguido de uma expressão (Localidade = "Sintra").

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

Pode efetuar muitas das ações que SQL permite-lhe efetuar utilizando SELECT, FROM e cláusulas WHERE. Obter mais informações sobre como utilizar estes cláusulas são apresentadas nos seguintes artigos adicionais:

Início da Página

Ordenar os resultados: por ordem

Como o Microsoft Excel, o Access permite-lhe ordenar os resultados da consulta numa folha de dados. Pode também especificar na consulta como pretende ordenar os resultados quando a consulta é executada, utilizando uma cláusula ORDER BY. Se utilizar uma cláusula ORDER BY, é a última cláusula na instrução SQL.

Uma cláusula ORDER BY contém uma lista dos campos que pretende utilizar para ordenar na mesma ordem que pretende aplicar as operações de ordenação.

Por exemplo, imaginemos que pretende que os resultados da sua ordenados em primeiro lugar pelo valor do campo da empresa por ordem descendente, e — se existem registos com o mesmo valor para a empresa — ordenados seguinte pelos valores no campo Endereço de correio electrónico por ordem ascendente. Sua cláusula ORDER BY seria semelhante ao seguinte:

ORDER BY Company DESC, [E-mail Address]

Nota: Por predefinição, o Access ordena valores por ordem ascendente (A-Z, menor para o maior). Utilize a palavra-chave DESC para ordenar valores por ordem descendente em vez disso.

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

Início da Página

Trabalhar com dados resumidos: Agrupar por e HAVING

Por vezes, pretende trabalhar com dados resumidos, tais como o total de vendas num mês ou os itens mais dispendiosos num inventário. Para executar esta tarefa, aplique um função de agregação a um campo na sua cláusula SELECT. Por exemplo, se pretender que a sua consulta para mostrar a contagem de endereços de e-mail listados para cada empresa, sua cláusula SELECT poderão assemelhar-se o seguinte procedimento:

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

As que pode utilizar funções de agregação variam consoante o tipo de dados que estão no campo ou expressão que pretende utilizar. Para mais informações sobre as funções de agregação disponíveis, consulte o artigo Funções de agregação SQL.

Especificar campos que não são utilizados na função de agregação: cláusula de GROUP BY

Quando utiliza funções de agregação, normalmente, também terá de criar uma cláusula GROUP BY. Uma cláusula GROUP BY lista todos os campos que não são aplicadas uma função de agregação. Se aplicar funções de agregação para todos os campos numa consulta, não terá que criar a cláusula GROUP BY.

Uma cláusula GROUP BY imediatamente a seguir a cláusula WHERE ou a cláusula FROM se não existe nenhuma cláusula WHERE. Uma cláusula GROUP BY lista os campos, tal como aparecem na cláusula SELECT.

Por exemplo, continuar no exemplo anterior, se a sua cláusula SELECT aplica-se a função de agregação a [endereço de correio electrónico], mas não para empresa, sua cláusula GROUP BY seria parecido com o seguinte:

GROUP BY Company

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

Limitar os valores agregados ao utilizar critérios de grupo: a cláusula HAVING

Se pretender utilizar critérios para limitar os resultados, mas o campo ao qual pretende aplicar critérios é utilizada na função de agregação, não pode utilizar uma cláusula WHERE. Em vez disso, pode utiliza uma cláusula HAVING. Uma cláusula HAVING funciona como uma cláusula WHERE, mas é utilizada para dados agregados.

Por exemplo, imaginemos que utilize a função média (que calcula um valor médio) com o primeiro campo na sua cláusula SELECT:

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

Se pretender que a consulta para restringir os resultados com base no valor da função que contar, não pode utilizar um critério para esse campo na cláusula WHERE. Em vez disso, introduz os critérios de uma cláusula HAVING. Por exemplo, se pretender apenas a consulta para devolver linhas, se existirem mais do que os endereços de e-mail de um associado a empresa, a cláusula HAVING poderão assemelhar-se o seguinte procedimento:

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

Nota: Uma consulta pode ter uma cláusula WHERE e uma cláusula HAVING — critérios para campos que não são utilizados numa função de agregação aceda na cláusula WHERE e critérios para campos que são utilizados com funções de agregação aceda na cláusula HAVING.

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

Início da Página

Combinar os resultados da consulta: União

Quando pretender rever todos os dados que são devolvidos por várias consultas seleccionar semelhantes em conjunto, como um conjunto combinado, utiliza o operador UNION.

O operador de União permite-lhe combinar duas instruções SELECT numa só. As instruções SELECT que o utilizador combina tem de ter o mesmo número de campos de saída, na mesma ordem e com os tipos de dados do mesmo ou compatíveis. Ao executar a consulta, dados de cada conjunto de campos correspondentes são combinados num único campo de saída, pelo que o resultado da consulta tem o mesmo número de campos como cada uma das instruções SELECT.

Nota: Para efeitos de uma consulta união, os tipos de dados Número e Texto são compatíveis.

Quando utiliza o operador de União, também pode especificar se os resultados da consulta devem incluir linhas duplicadas, se existir alguma, utilizando a palavra-chave todos os.

A sintaxe SQL básica para uma consulta de União que combina duas instruções SELECT é da seguinte forma:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Por exemplo, imaginemos que tem uma tabela denominada produtos e serviços com o nome de outra tabela. Ambas as tabelas têm campos que contêm o nome do produto ou serviço, o preço, garantia ou garantam disponibilidade, e se oferecer o produto ou serviço exclusivamente. Apesar da tabela de produtos armazena informações sobre a garantia e de arquivos de tabela serviços garantam informações, as informações básicas são a mesma (se um determinado produto ou serviço inclui a promessa de qualidade). Pode utilizar uma consulta União, tal como o seguinte, para combinar os quatro campos de duas tabelas:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Para mais informações sobre como combinar as instruções SELECT utilizando o operador de União, consulte o artigo combinar os resultados de várias consultas seleccionar utilizando uma consulta União.

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.

×