Introdução
O objetivo deste tutorial é demonstrar como você pode escrever suas próprias instruções SQL e executá-las no Microsoft Access 2007, 2010, 2013 2016 ou 2019 (as etapas são praticamente idênticas em todas as versões). Como acontece com todos os bancos de dados relacionais, o Microsoft Access pode ser programado diretamente usando a Linguagem de Consulta Estruturada (SQL). Embora na maioria das vezes o SQL esteja oculto para os usuários, para estudantes de banco de dados, o MS Access fornece uma maneira rápida e fácil de explorar o SQL e escrever algumas consultas bastante complexas. Isso é especialmente útil se você não tiver tempo ou paciência para instalar o SQL Server, Oracle, MySQL ou outro sistema de gerenciamento de banco de dados relacional maior.
Os exemplos SQL usados neste breve tutorial são baseados nas tabelas simples Cliente e Contas criadas como parte do meu Tutorial do Microsoft Access 2007, 2010 e 2013.
Você pode querer executar primeiro esse tutorial (ou pelo menos o primeiro algumas seções) para criar as tabelas e adicionar os dados necessários para que esses exemplos funcionem.
A próxima seção fornecerá uma breve introdução da Structured Query Language (SQL).
A linguagem de consulta estruturada (SQL)
Structured Query Language (SQL pronunciado “Sequel”) é uma linguagem de programação declarativa usada para manipular sistemas de gerenciamento de banco de dados relacional (RDBMS). Foi introduzido pela primeira vez no System R da IBM no final da década de 1970. Hoje o SQL é usado em todos os principais SGBDs relacionais como Oracle, IBM DB2, Informix, Sybase, Microsoft SQL Server, MySQL, Postgres, SQLLite, Microsoft Access e muitos outros. Embora cada fornecedor de banco de dados forneça alguns recursos proprietários adicionados, o núcleo do SQL pode ser usado em praticamente qualquer banco de dados relacional.
A linguagem de consulta estruturada é dividida em duas partes principais:
- Linguagem de definição de dados (DDL) – Usada para criar (definir) estruturas de dados como esquemas, tabelas, índices, clusters, sequências, bem como proteger o banco de dados
- Linguagem de manipulação de dados (DML) – Usada para inserir, recuperar, atualizar e excluir dados de tabelas.
O Microsoft Access oferece suporte a partes DDL e DML do SQL. Na maioria das vezes, nos concentramos em consultas SQL que, como instruções SQL SELECT, são usadas para recuperar dados de um banco de dados existente. A sintaxe básica para uma instrução SQL SELECT é:
SELECT column1, column2, ... columnN FROM tableA, tableB, ... tableZ WHERE condition1, condition2, ...conditionM ORDER BY column1, column2, ... columnN
Assim, por exemplo, supondo que tenhamos uma tabela chamada Customer com colunas como FirstName, LastName, StreetAddress, City, state e Zip, podemos escrever uma instrução SQL SELECT assim:
SELECT FirstName, LastName, City, State FROM customer
Na consulta acima, estamos solicitando dados apenas nas colunas FirstName, LastName, City e State, e a tabela da qual estamos obtendo esses dados é chamada customer. Observe que a linguagem SQL não se preocupa com letras maiúsculas ou minúsculas. Então, escrevendo select firstName... é o mesmo que escrever SELECT FIRSTNAME ... .
Uma consulta um pouco mais sofisticada seria se quiséssemos ver apenas os clientes que moram na Geórgia e gostaríamos que os resultados fossem classificados pelo sobrenome do cliente:
SELECT FirstName, LastName, City, State FROM customer WHERE state = 'GA' ORDER BY LastName
Como você pode ver, a lista de colunas que queremos mostrar segue a palavra-chave SELECT. O nome da tabela que estamos consultando segue a palavra-chave FROM, uma condição state ='GA' segue a palavra-chave WHERE e, finalmente, os resultados são classificados na coluna LastName conforme descrito pela palavra-chave ORDER BY.
Existem muitos outros recursos da instrução SQL SELECT que envolvem a consulta de várias tabelas “juntando-as”, agrupando coleções de registros para encontrar totais, valores maiores, menores ou médios e realizando outras manipulações na saída que os usuários eventualmente verão. Uma discussão muito mais abrangente sobre os recursos do SQL pode ser encontrada neste link.
A próxima seção apresenta o uso de SQL a partir da visualização Query Design no MS Access.
SQL no Microsoft Access
Nesta seção, forneceremos as etapas para escrever seu próprio SQL no MS Access. Este exercício pressupõe que você tenha o MS Access 2007, 2010 ou 2013 em execução com o banco de dados “Banco” (tabelas Cliente e Contas) aberto. Clique aqui para o tutorial com as etapas para criar esse banco de dados.
Para começar:
- crie uma nova consulta clicando no botão Criar guia e, em seguida, clicando no botão Design da consulta ícone como mostrado abaixo.
- A caixa de diálogo "Mostrar tabela" aparecerá conforme mostrado abaixo. Clique no botão Fechar botão para fechá-lo.
- Clique na guia Design e, em seguida, clique no botão SQL ícone no lado esquerdo (ou puxe o botão de visualização e selecione SQL
- Neste ponto, a Visualização SQL da consulta Query1 aparecerá. Por padrão, a palavra-chave SELECT é mostrada na janela.
- Edite a consulta para escrever uma instrução SQL completa:
SELECT firstname, lastname FROM customer ORDER BY lastname
A janela de consulta da visualização SQL aparecerá como abaixo:
- Neste ponto, com a instrução SQL digitada, podemos executar a consulta no banco de dados clicando no botão de exclamação “Executar”.
- Os resultados da consulta serão exibidos em uma visualização de folha de dados (como uma planilha):
- Para voltar a editar a consulta SQL, abra o menu Exibir e selecione SQL novamente.
- Você também pode salvar sua consulta. Para fazer isso, clique com o botão direito do mouse na guia com o nome da consulta atual:Query1 e escolha Salvar .
Uma caixa de diálogo aparecerá solicitando o novo nome da consulta. Digite um novo nome, como:Customer_Names e clique em OK para salvá-lo.
- Finalmente, o MS Access não oferece uma maneira de salvar uma consulta com um novo nome (“Salvar como”). Em vez disso, o que você pode fazer é destacar o nome da consulta, clicar com o botão direito do mouse e selecionar Copiar em seguida, clique com o botão direito do mouse novamente e selecione Colar . Você será solicitado a fornecer o novo nome da consulta.
A seguir apresentarei alguns truques e dicas sobre como escrever e depurar suas consultas SQL.
Escrevendo e depurando consultas SQL no MS Access
Agora que você tem a mecânica básica de escrever e executar consultas SQL, aqui estão algumas dicas e truques para depurar seu SQL.
Editores para MS Access SQL
A janela do editor SQL no MS Access não é tão inteligente ou fácil de trabalhar. Uma maneira de trabalhar com SQL é escrever o código em outro editor e, em seguida, copiar e colar o código no Access para executá-lo. Existem muitos editores de texto diferentes disponíveis. Por exemplo, no Windows, você terá o Bloco de Notas disponível no grupo Acessórios. O único aviso que posso dar aqui é NÃO usar MS Word ou outro software de processamento de texto para escrever seu SQL. A razão para isso é que o MS Word e outros processadores de texto transformarão suas aspas simples e duplas em “aspas extravagantes” que o SQL não entende.
Por exemplo, se você tiver uma cláusula WHERE como WHERE state ='GA'
SQL espera que o texto seja colocado entre aspas simples. A palavra MS transformará isso em um caractere de aspas de abertura e fechamento sofisticado que o SQL não entenderá.
Se você receber um erro como Enter Parameter Value for `GA' então você definitivamente vai querer ter certeza de que seu texto está entre aspas simples simples.
Lidando com erros de sintaxe
Erros de sintaxe podem ser muito frustrantes em SQL porque muitas vezes o banco de dados não consegue identificar exatamente onde está o problema em seu código. Alguns dos principais erros que o Access exibirá incluem:
Texto do erro | Solução | Exemplo |
---|---|---|
Insira o valor do parâmetro para ________ | Na maioria das vezes isso acontece quando o nome de uma coluna (campo) não é digitado corretamente (como neste caso "lstname" está incorreto) ou uma expressão não pode ser reconhecido como WHERE state =`GA' | |
O mecanismo de banco de dados do Microsoft Access não pode encontrar a consulta ou tabela de entrada :______________ | Na maioria das vezes isso acontece quando o nome de uma tabela não é digitado corretamente na cláusula FROM da consulta. Por exemplo, neste caso, a consulta especificou FROM clients em vez de DE cliente | |
Erro de sintaxe (operador ausente) na expressão de consulta:______________ | Neste caso, a sintaxe da consulta está faltando algumas partes importantes. Por exemplo, a cláusula “FROM” está ausente e, portanto, o Access informa a localização aproximada de onde o problema ocorre, mostrando o texto da consulta. |
Na próxima seção, fornecerei algumas dicas adicionais sobre como apresentar suas consultas SQL e resultados para um projeto ou tarefa de casa.
Documentando seu trabalho SQL
Nesta seção, descreverei algumas dicas para formatar suas consultas e resultados para que sejam apresentados de maneira clara e concisa em suas tarefas e projetos.
A suposição aqui é que você usará um programa de processamento de texto como MS Word ou outro programa de processamento de texto que suporte copiar e colar imagens e texto.
O MS Access não permite que você coloque comentários no Código SQL. Outros DBMS permitem isso, mas o Access é um pouco mais restritivo.
Para este exercício, suponha que a pergunta do dever de casa seja mostrar os nomes e sobrenomes de todos os clientes e ordenar o resultado pelo sobrenome do cliente.
- Digite a consulta SQL conforme descrito na seção anterior e execute-a para obter os resultados:
- Na visualização Folha de Dados, clique na pequena caixa quadrada à esquerda dos títulos das colunas e na parte superior das caixas de seleção de linha. Isso fará com que todo o conjunto de resultados seja destacado.
- Clique com o botão direito do mouse na mesma pequena caixa quadrada no canto e selecione Copiar no menu pop-up.
- Mude para o MS Word (ou outro programa de processamento de texto) e cole os resultados em um local apropriado:
Algumas outras dicas úteis que também foram seguidas na criação deste documento de atribuição:
- Certifique-se de digitar a frase completa descrevendo a consulta que você está resolvendo (não coloque apenas “Pergunta 1”). Por exemplo, você pode copiar a pergunta do dever de casa e torná-la parte da resposta.
- Ao colar o texto SQL para sua consulta, use uma fonte Courier New para que os caracteres e o espaçamento fiquem alinhados. Isso facilita muito a leitura.
- Cole os resultados usando a técnica mostrada acima em vez de usar uma captura de tela. Isso não apenas tornará seus arquivos de documento do Word menores, mas também ficará muito claro quando você o imprimir.
- Certifique-se de colocar seu nome, turma/curso e seção em sua tarefa.
- Para consultas mais complexas que podem envolver subconsultas ou consultas Inline, é melhor alinhar as subconsultas em um recuo para facilitar a leitura e a depuração. Por exemplo, em vez de escrever uma subconsulta como esta:
SELECT accountnumber, balance FROM accounts WHERE balance = (SELECT MIN(balance) from accounts)
Alinhe a subconsulta entre parênteses:
SELECT accountnumber, balance FROM accounts WHERE balance = ( SELECT MIN(balance) FROM accounts )
Seguir essas etapas causará uma ótima impressão quando você entregar suas tarefas e projetos.
Conclusões
Neste breve tutorial, abordamos como trabalhar com SQL usando o MS Access. SQL é uma linguagem de programação bastante genérica e qualquer coisa que você aprenda enquanto escreve SQL sob acesso MS pode ser facilmente transferida para outros bancos de dados relacionais como SQL Server, Oracle, Sybase, etc. Para mais notas sobre SQL, visite meu Structured Query Language (SQL) página de notas do curso.
Para mais tutoriais introdutórios e avançados do MS Access, visite a Categoria de Acesso no meu site.