Acesso SQL: conceitos básicos, vocabulário e sintaxe

Acesso SQL: conceitos básicos, vocabulário e sintaxe

Quando você deseja recuperar dados de um banco de dados, peça os dados usando linguagem SQL ou SQL. SQL é uma linguagem de computador que se parece muito com inglês, mas os programas de banco de dados entendem. Cada consulta que você executar usa SQL nos bastidores.

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

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

Neste artigo

O que é SQL?

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

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

Por exemplo, uma instrução SQL simples que recupera uma lista de sobrenomes para contatos cujo nome é Maria pode se parecer com isso:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

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

Instruções SELECT

Para descrever um conjunto de dados usando SQL, você escreve 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.

SQL cláusulas

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.

SQL cláusula

O que ela faz

Obrigató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 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 SQL que contém funções agregadas, lista campos que não são resumidos na cláusula SELECT.

Somente se houver tais campos

HAVING

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

Não

SQL termos

Cada SQL é composta de termos , comparáveis a partes de fala. A tabela a seguir lista os tipos de SQL termos.

SQL termo

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

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

AS

constante

substantivo

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

42

expressão

adjetivo

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

>= Produtos. [Preço da unidade]

Início da página

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

Uma SQL de SQL assume o formato geral:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Observações: 

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

  • Cada instrução SELECT termina com dois pontos e vírgulas (;). O ponto e vírgula pode aparecer no final da última cláusula ou em uma linha sozinha no final da instrução SQL.

Um exemplo no Access

O seguinte ilustra como uma instrução SQL de uma consulta de seleção simples pode ter a aparência no Access:

Guia Objeto SQL mostrando uma instrução SELECT

1. Cláusula SELECT

2. Cláusula FROM

3. Cláusula WHERE

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

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

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á estar entre colchetes.

Uma cláusula SELECT não precisa dizer quais tabelas contêm os campos e não pode especificar as 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 de uma expressão (City="Seattle").

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

Você pode realizar muitas das ações que 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

Classificação dos resultados: ORDER BY

Assim como o Microsoft Excel, o Access permite classificar os resultados da consulta em uma folha de dados. Você também pode especificar na consulta como deseja classificar os resultados quando a consulta é executado, usando uma cláusula ORDER BY. Se você usar uma cláusula ORDER BY, 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 que deseja aplicar as operações de classificação.

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

ORDER BY Company DESC, [E-mail Address]

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

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

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 de um inventário. Para fazer isso, você aplica uma 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 pode se parecer com o seguinte:

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

As funções agregadas 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 agregadas disponíveis, consulte o artigo SQL Funções Agregadas.

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

Quando você usa funções agregadas, 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 agregada. Se você aplicar funções agregadas a todos os campos em uma consulta, não será preciso 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 que aparecem na cláusula SELECT.

Por exemplo, continuando o exemplo anterior, se a cláusula SELECT aplicar uma função agregada a [Endereço de email] mas não à Empresa, sua cláusula GROUP BY se pareceria com o 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 agregada, 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 é 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 parecer com o seguinte:

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

Observação: Uma consulta pode ter uma cláusula WHERE e uma cláusula HAVING — os critérios para campos que não são usados em uma função agregada vão para a 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 HAVING Clause.

Início da página

Combinando resultados de consulta: UNION

Quando você deseja revisar todos os dados retornados por várias consultas de seleção semelhantes juntas, 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ê combinar 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ê executar a consulta, os dados de cada conjunto de campos correspondentes são combinados em um campo de saída, para que a saída da consulta tenha o mesmo número de campos que cada uma das instruções selecionadas.

Observação: Para fins de uma consulta de união, os tipos de dados Number e Text são compatíveis.

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

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

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

Por exemplo, suponha que você tenha uma tabela chamada Products e outra tabela chamada Services. 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 determinado produto ou serviço inclui uma promessa de qualidade). Você pode usar uma consulta de união, como a seguir, para combinar os quatro campos das duas tabelas:

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

Para obter mais informações sobre como combinar instruções SELECT usando o operador UNION, consulte Combine the results of several select queries by using a union query.

Início da página

Precisa de mais ajuda?

Expanda suas habilidades no Office
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×