Sie sind auf Seite 1von 10

c 

  
 

  

Neste tutorial serão apresentados os principais elementos da linguagem SQL (Structured Query Language). Serão
apresentados diversos exemplos práticos de utilização da linguagem SQL.

J   
Para acompanhar esta lição você deve dominar os conceitos apresentados nos seguintes
treinamento: "Curso Básico de Access" e no tutorial "Consultas Avançadas no Microsoft Access".

^
   

O SQL foi desenvolvido para ser uma linguagem padrão para operações com Banco de Dados. A lingüagem SQL foi
elaborada para ser independente de hardware ou do software. Ao usar o SQL, você não precisa saber a respeito
do software de banco de dados ou do hardware envolvido em uma operação. Tudo o que você precisa conhecer
são os comandos/instruções SQL padrão para solicitar informações, que obrigatoriamente é o mesmo em todos os
sistemas que utilizam o SQL.

c 
Na prática existem pequenas diferenças entre o SQL dos diferentes bancos de dados, como o Microsoft
Access, Microsoft SQL Server 2000, ORACLE, etc.

Você usa operações SQL quando trabalha com o Microsoft Access, mas o programa, na verdade, oculta a
linguagem SQL do usuário. Por exemplo, todas as operações de consulta são realizadas usando-se SQL, mas você
vê apenas a parte gráfica (Modo Estrutura) onde a consulta é definida.

Você pode ser muito produtivo no Microsoft Access sem saber nada de SQL. Um conhecimento básico de SQL, no
entanto, melhora significativamente o seu uso do Microsoft Access, principalmente no uso de técnicas avançadas
em Formulários e Relatórios e na criação de rotinas de programação.

Quando você constrói uma consulta no modo estrutura, na verdade o Microsoft Access está definindo uma
instrução SQL, a partir dos campos, critérios e opções de filtragem que você definiu na consulta. A título de
exemplo, vamos acessar a instrução SQL da consulta "Totais por Pedido", fornecida com o arquivo Semana2.mdb,
o qual faz parte dos arquivos de exemplos do Curso de Access Avançado.

c 
Você pode acompanhar este exemplo utiliando o arquivo Northwind.mdb, o qual faz parte do Access e
acessando o SQL de qualquer uma das consultas disponíveis.
O Abra o banco de dados Semana2.mdb
O Vá para a Guia Consultas
O Dê um clique na consulta Totais por Pedido
O Dê um clique no botão Estrutura
O Selecione o comando Exibir -> Modo SQL. Seré exibido o comando SQL indicado a seguir:
a  J   c  J  a   J    
  
a  J J  
J  
cc c
  J  
c
J   c  J    J   c  J  
 JJ   c  J  
c 
Se você não tiver disponível a consulta Totais por Pedido, utilize qualquer outra consult a disponível.

Na prática é esta Instrução SQL que o Microsoft Access grava ao salvar uma consulta e também é esta Instrução
SQL que é utilizada para selecionar os registros, aplicando os critérios especificados.

Embora possa parecer um pouco complexa, veremos que a linguagem SQL é extremamente simples e intuitiva.
Neste tópico veremos alguns aspectos básicos sobre o SQL, bem como os locais na Ajuda do Microsoft Access
onde podem ser encontradas informações mais detalhadas sobre o SQL.

Uma Instrução SQL descreve o conjunto de dados que você deseja recuperar (quais campos, de quais tabelas,
quais critérios, classificação, expressões Calculadas, etc).

Todas as instruções SQL são conduzidas com um único comando que contém uma descrição completa da
informação exigida. Ao escrever uma instrução SQL, você não deve se preocupar em como os dados são
recuperados, mas somente com o conteúdo do conjunto de dados. Esse é o principal benefício do método SQL. Em
muitas operações do Microsoft Access, você pode usar instruções SQL, no lugar de expressões normais para inserir
um conjunto de dados em um objeto. Por exemplo, todos os formulários e relatórios possuem uma propriedade
RecordSource. Essa propriedade normalmente é o nome de uma tabela ou consulta, mas também podeser uma
instrução SQL.

Lembre-se que o SQL é um padrão genérico para expressões de consulta em banco de dados. Embora a maior
parte das versões do SQL compartilhe elementos básicos, elas não são idênticas. O Access SQL usa algumas
palavras-chave que você não encontra em outras versões do SQL.

Veremos através de exemplos a utilização das principais palavras chaves do SQL para a construção de expressões
SQL para pesquisa em banco de dados.



Esta com certeza é a instrução SQL mais importante, não existe pesquisa que não utilize esta instrução, vamos
conhecê-la em detalhes.

A Instrução Select é utilizada para especificar "Quais os Campos" de "Quais tabelas" farão parte da consulta, quais
os critérios de pesquisa que serão utilizados, qual a ordem de classificação, etc.

A sintaxe da instrução está indicada a seguir:


a          
 a  
     a  

     c     
 
 J 
 c 
   
c  aaJc
Onde nós temos os seguintes elementos:

  


Um dos seguintes: ALL, DISTINCT, DISTINCTROW ou TOP. Você usa um predicado para
   restringir o número de Registros que é retornado pela consulta. Se nenhum for
especificado o padrão é ALL
Especifica que todos os campos de uma determinada tabela ou consulta devem ser
 selecionados. Por exemplo: a J   - Retorna todos os campos da tabela
Pedidos.
O nome da tabela ou consulta de onde são selecionados os campos. Por exemplo,a
  J   c  J  J      J   J   - Seleciona os
Campos NúmeroDoPedido e DataDoPedido, da tabela Pedidos.
 
   O Nome dos campos a serem selecionados.
Um "apelido" para o campo. Na Folha de Dados o apelido aparece como o título da coluna.
 
   Por exemplo, aJ   c  J   c  J   , faz com
que a coluna NúmeroDoPedido tenha o nome c a ela associado.
     O nome da tabela de onde os campos serão selecionados
      O nome do Bando de Dados que contem a tabela, caso não seja o banco de dados atual.
Utilizado para especificar critérios na consulta. Por exemplo,  
 
J   J !  
 " O mesmo que Agrupar Por no modo estrutura da consulta, na linha Total
 # Especifica critérios quando utilizamos Agrupar Por.
Utilizado para classificação dos registros em ordem crescente ou descendente de um
 "
determinado campo.
Em um ambiente multiusuários com um grupo de trabalho seguro, use esta declaração
com uma consulta para conceder ao usuário que executa a consulta as mesmas
permissões que as do proprietário da consulta.

Sintaxe

instrução sql

WITH OWNERACCESS OPTION
c  aa
A declaração WITH OWNERACCESS OPTION é opcional.
Jc
O exemplo a seguir permite que o usuário visualize informações sobre salários (mesmo
que, de outra forma, o usuário não tenha permissão para visualizar a tabela
FolhaDePagamento), desde que o proprietário da consulta tenha essa permissão:

SELECT Sobrenome,
Nome, Salário
FROM Funcionários
ORDER BY Sobrenome
WITH OWNERACCESS OPTION;

Se de alguma outra forma o usuário for impedido de criar ou adicionar a uma tabela, você
pode usar WITH OWNERACCESS OPTION para permitir que ele execute uma consulta criar
tabela ou consulta acréscimo.

Se você deseja impor configurações de segurança de grupo de trabalho e permissões de


usuários, não inclua a declaração WITH OWNERACCESS OPTION.

Essa opção requer que você tenha acesso ao arquivo System.mdw associado ao banco de
dados. É realmente útil somente nas implementações de multiusuários com segurança.

Vejamos alguns exemplos práticos para exemplificar o uso da instrução Select:


O Criar uma instrução SQL que retorne o campo NúmeroDoPedido, o campo DataDoPedido, o campo Frete e o
campo PaísDeDestino da tabela Pedidos.

a  J   c  J   J      J  J   J ! J    



J  
Toda Instrução SQL deve ser terminada com um ponte e vírgula (;), conforme indicado acima. Esta instrução SQL
pode ser gerada a partir do modo estrutura da consulta. Basta você criar uma nova consulta baseada na tabela
pedidos, adicionar os campos indicado e depois dar uma olhada no modo SQL. Um detalhe interessante é que se
você fizer qualquer alteração no modo SQL, as alterações se refletem no modo estrutura e vice-versa. Isso
acontece porque o modo estrutura da consulta, é simplesmente uma representação gráfica para facilitar a
construção de expressões SQL.
O Alterar a instrução SQL anterior para que os registros sejam classificados em ordem crescente pelo valor do
Frete.

a  J   c  J  J      J  J   J ! J    



J  
  J   
Observe a utilização da cláusula   J    para classificar os registros em ordem Crescente. A
classificação em ordem crescente á o padrão no Microsoft Access. Quando formos classificar em ordem
decrescente, precisamos especificar a palavra  a, conforme indicado abaixo:
a  J   c  J  J      J  J   J ! J    

J  
  J    a

O Alterar a instrução SQL anterior para que sejam exibidos somente os pedidos cujo PaísDeDestino seja Brasil.

a  J   c  J  J      J  J   J ! J    



J  
 J   J !  
  J   
Observe a utilização da Cláusula  para filtrar somente os pedidos cujo PaísDeDestino seja Brasil. Como o
campo PaísDeDestino é um campo do tipo texto, o valor do critério (Brasil) tem que vir entre aspas. Se fosse um
campo do tipo Data, o valor do critério teria que vir delimitado pelo sinal #. Por exemplo #01/01/1995#. Vamos
trabalhar um pouco mais com a cláusula WHERE.
O Altere a instrução SQL anterior para que sejam exibidos somente os pedidos para o Brasil ou Alemanha como
PaísDeDestino.

a  J   c  J  J      J  J   J ! J    



J  
 J   J !  
 
J   J !    
  J   
Observe a utilização da Cláusula  ligando os dois Critérios. Lembre que a cláusula  retorna um registro se o
PaísDeDestino atender um dos dois critérios, isto é, se for Brasil ou se for argentina, o Registro será selecionado,
que é exatamente o que desejamos, ou seja, todos os Pedidos para o Brasil mais os pedidos para Argentina.
O Altere a instrução SQL anterior, retirando o critério para PaísDeDestino. Adicione um critério para
NúmeroDoPedido maior do que 10500, retire a classificação do campo Frete a classifique pelo campo
NúmeroDoPedido.
a  J   c  J  J      J  J   J ! J    

J  
 J   c  J  $
  
  J   c  J  
Observe a cláusula  utilizando o operador de comparação maior do que (>) e a classificação através da
cláusula    no campo NúmeroDoPedido. Observe também, que no Microsoft Access, nas instruções SQL
sempre aparece a identificação completa do campo no seguinte formato: c   c   . Por
exemplo J   c  J  para indicar o campo NúmeroDoPedido da tabela Pedidos.

Podemos ver, através dos exemplos, que a linguagem SQL não é tão difícil como pode parecer a primeira vista.
Observe que a sintaxe da linguagem é bastante intuitiva e orientada a extração de dados através das consultas.

Vamos continuar vendo exemplos de aplicação da linguagem SQL com a utilização de recursos mais avançados.
O Alterar a instrução SQL anterior, e adicionar um critério de tal maneira que somente sejam exibidos os pedidos
para o Ano de 1995. Tirar o critério do campo Número do Pedido.

a  J   c  J  J      J  J   J ! J    



J  
     J  
!!  
  J   c  J  
Observe a utilização da função Ano (Year) para extrairmos apenas o Ano do campo DataDoPedido a fim de
especificarmos como critério o Ano=1995. Também a cláusula Order By foi mantida, classificando a listagem em
ordem crescente pelo número do pedido. A utilização de funções junto com os comando SQL nos fornece inúmeras
possibilidades de refinamento em nossas consultas.
O Alterar a instrução SQL anterior, para que sejam exibidos somente os pedidos no Período de 
"
"
!!  
#
"$"
!! e que tenham como PaísDeDestino Brasil, Argentina, Alemanha ou Canadá.

a  J   c  J  J      J  J   J ! J    



J  
 J      J   %
"
"! %  %&"#
"! % 
c
J   J !         
  J   c  J  
Observe a utilização de vários critérios em diferentes campos. Colocamos critérios nos campos    J  e
J ! . Conforme descrito anteriormente os critérios de dois ou mais campos são ligados através do
operador c, indicando que um registro deve atender ambos os critérios para ser selecionado. Também temos a
utilização dos operadores Between (Entre) para selecionar as datas dentre de um determinado intervalo e do
operador In (Em) para selecionar o campo PaísDeDestino que seja igual a um dos valores apresentados na lista.
Observe também , que os valores de data vem delimitados pelos marcadores #, conforme descrito anteriormente.
O Criar uma instrução SQL que retorne o campo NúmeroDoPedido, o campo DataDoPedido, o campo
DataDeEntrega, o campo Frete e o campo PaísDeDestino da tabela Pedidos. Criar uma coluna adicional que calcula
o número de dias entre a DataDeEntrega e a DataDoPedido. Chamar esta coluna de Dias_Ped_Entr.

a  J   c  J  J      J  J        


J   J ! J           J   a %J %  

J  
 J      J   %
"
"! %  %&"#
"! % 
c
J   J !         
  J   c  J  
Veja que a coluna calculada está junto com a listagem dos campos no início da instrução a. Além disso foi
utilizada a palavra a para atribuir um nome (apelido) para esta coluna calculada. Este nome é o que irá aparecer
como título da coluna no modo Folha de Dados. Quando você constrói uma expressão, este é o nome que vem
antes dos dois pontos, por exemplo:  %J % 
        J  .

Você também pode classificar a listagem em ordem crescente ou decrescente de um campo calculado. Por
exemplo, se você quisesse classificar a listagem do ítem anterior, em ordem crescente, do número de dias entre a
DataDeEntrega e a DataDoPedido, bastaria utilizar a seguinte instrução SQL:
a  J   c  J  J      J  J        
J   J ! J           J   a %J %  

J  
 J      J   %
"
"! %  %&"#
"! % 
c
J   J !         
          J  

O Alterar a instrução SQL anterior, eliminando os critérios para a DataDoPedido e para o PaísDeDestino. Colocar
um novo critério para PaísDeDestino, onde sejam exibidos apenas os pedidos cujo PaísDeDestino tem a Primeira
Letra na faixa de A até M. Utilize o operador Like.

a  J   c  J  J      J  J        


J   J ! J           J   a %J %  

J  
 J   J ! & 
  J   J ! 
Observe a utilização do Operador Like ("Como") como critério de Pesquisa para esta consulta. Nunca é demais
salientar que a utilização das Instruções SQL juntamente com as funções e operadores do Microsoft Access, nos
fornece um amplo conjunto de possibilidades.

Até agora utilizamos exemplos com Instruções que selecionam registros de uma única tabela. Porém é bastante
comum criarmos Consultas baseadas em duas ou mais tabelas. Quando criamos instruções SQL que buscam dados
em duas ou mais tabelas, dizemos que está sendo feito um   entre as duas tabelas. Normalmente este "Join"
(ou ligação) é feito através de um campo comum as duas tabelas. Por exemplo, c  J  na tabela
J   e c  J  na tabela   J  . Outro exemplo, '    na tabela
J   e '    na tabela . Pode acontecer de termos consultas que trabalham com três ou
mais Tabelas, neste caso teremos diversos Joins.

Agora passaremos e explorar, na Prática, através de exemplos a construção de Instruções SQL que trabalham com
duas ou mais tabelas. Sempre lembrando que estas consultas podem ser construídas diretamente no modo
estrutura das consultas e depois simplesmente vamos para o modo SQL e observamos o código gerado. Porém o
conhecimento da linguagem SQL é útil em diversas situações, conforme veremos ao estudarmos Técnicas
Avançadas em Formulários e Técnicas Avançadas em Relatórios.
O Criar uma instrução SQL que selecione os seguintes campos:
O c  J     J  
O    J     J  
O J !    J  
O    J  
O '   J  J            J 
As tabelas J   e   J  estão relacionadas através do campo NúmeroDoPedido. Classificar a
listagem em ordem crescente do campo NúmeroDoPedido.
a  J   c  J  J      J  J   J ! J   
  J   '   J    J   J      
J     

J  
cc c
  J  
c
J   c  J    J   c  J  
  J   c  J  
Observe a instrução que está em vermelho. Nela temos a utilização da cláusula INNER JOIN, ligando as tabelas
Pedidos e Detalhes do Pedido, através do campo NúmeroDoPedido, conforme especificado após oc. UM Join
deste tipo é bastante comum.

Observe que está listagem irá trazer vários registros para cada Pedido, tantos quantos forem os ítens de cada
pedido. Por exemplo, o Pedido Número 10248 apresenta três registros, um para cada um dos seus ítens. Um para
o Produto 42, outro para o produto 72 e um para o produto cujo código é 11.

Mas se ao invés do CódigoDoProduto, nos quiséssemos que fosse exibida a    J  . Em primeiro
lugar esta informação encontra-se na tabela J  , logo teremos que adicionar a Tabela Produtos a nossa
consulta, a qual ira se ligar a tabela   J  através do campo '   J  , logo teremos
mais um Join.

Após adicionar a tabela Produtos e substituir o campo CódigoDoProduto pelo campo NomeDoProduto, a nossa
instrução SQL deve ficar conforme indicado abaixo:
a  J   c  J  J      J  J   J ! J   
J   c  J    J   J      J      

J  
cc c
J  
cc c  J   
c
J   c  J    J   c  J   
c
J   '   J    J   '   J  
  J   c  J  
Observe que neste caso temos um INNER JOIN dentro do outro. Dentro do parênteses é feita a ligação entre as
tabelas J   e   J  , através do campo c  J  , e externamente é feita a ligação
entre as tabelas Produtos e Detalhes do Pedido, através do campo c  J  .

Posso utilizar diversos níveis de INNER JOIN, embora esta não seja uma prática recomendada, pois se
aumentarmos muito os níveis de cc c, posso ter como resultado pesquisas mais lentas em conseqüência
do aumento da complexidade das consultas. Até 3 ou 4 níveis é considerado normal, acima disso preciso repensar
a maneira de construir a consulta.
O Alterar a instrução SQL do ítem anterior para que somente sejam exibidos os pedidos para os produtos cujo
NomeDoProduto inicie com uma letra na faixa de A até J. Tirar a classificação do campo NúmeroDoPedido e
classificar em ordem crescente do campo NomeDoProduto.

a  J   c  J  J      J  J   J ! J   


J   c  J    J   J       J      

J  
cc cJ  cc c  J   
c
J   '   J    J   '   J   
c
J   c  J    J   c  J  
 J   c  J  & 
  J   c  J  
Observe, além dos dois INNER JOIN, a utilização da cláusula WHERE em conjunto com Operador LIKE para
especificar o critério desejado.

Até este momento estivemos construindo Instruções SQL que correspondem as consultas de a .
Especificamos quais campos serão exibidos, critérios de filtragem para estes campos e uma ordem de
classificação. A partir de agora aprenderemos a utilizar Instruções SQL para a construção de outros tipos de
Consulta : Criar Tabela, Consulta anexação, Consulta de tabela de referência cruzada, Consulta exclusão e
Consulta atualização. Vamos começar criando uma consulta do tipo Criação de Tabela e observar as diferenças na
instrução SQL.
O Construir uma instrução SQL que selecione o NúmeroDoPedido, DataDoPedido, PaísDeDestino e Frete. Colocar
um critério para selecionar apenas os registros cuja DataDoPedido tenha caído no mês de Junho ou Julho de
qualquer ano. A consulta deverá ser do tipo Criar tabela e o nome da tabela será J     .

a  J   c  J  J      J  J   J ! J    


cJ      
J  
     J  ($
Observe a utilização da instrução cJ      . Ao invés de utilizarmos um a  
, utilizamos um a  c, que é a instrução SQL utilizada para criar uma nova tabela com os registros
retornados pela consulta. O Nome da nova tabela vem depois da instrução c. Como o nome da tabela possui
espaços em branco, o nome deve ser colocado entre colchetes. Também utilizamos, na cláusula WHERE, o
operador In , juntamente com a função Month, para especificar que o mês da DataDoPedido deve ser um dos
valores definidos na cláusula In (6=Junho, 7=Julho).

A Instrução SELECT INTO, informa ao Microsoft Access que é para "pegar" os registros rertornados pela consulta e
inseri-los em uma nova tabela. Caso a tabela já exista o Microsoft Access avisa que a tabela será excluída e uma
nova tabela será criada.
O Criar uma instrução SQL que aumento o J    em 20% na tabela   J  , devido a um
ajuste na moeda e uma desvalorização em relação ao Dólar.

J    J   


a   J   J    J    

Observe a simplicidade da instrução SQL. Utilizamos uma instrução J  , seguida do nome da tabela onde
será feita a atualização. Em seguida uma instrução SET com a expressão de atualização para aumentar em20% o
PreçoUnitário.

  
Se você executar mais do que uma vez, uma consulta de atualiazação, os dados serão
repetidamente atualizados. Por exemplo: da primeira vez que a consulta for executada os dados do campo
PreçoUnitário serão aumentados em 20% (por exemplo, um produto com preço Unitário de R$ 100,00 passará
para R$120). Se você executar a consulta novamente será aplicado um novo acréscimo de 20%, sobre os novos
valores - o produto de R$120,00 passará para R$144,00 e assim sucessivamente.
Vamos alterar essa instrução para incluir um critério na consulta de atualização.
O Alterar a instrução SQL do ítem anterior para que somente sejam aumentados os registros cujo J   
for maior ou igual a R$ 20,00.

J    J  


a   J   J    J    
 
   J   J    $
Foi adicionada uma cláusula  , para atualizar apenas os registros cujo J    seja maior do que R$
20,00.

Aqui podemos fazer alguns comentários sobre a utilização prática de Instruções SQL. Como exemplo poderíamos
citar um Formulário para atualização de Preços. Poderíamos colocar um campo onde o usuário digita o valor do
aumento (10%, 15%, etc) e um botão  ' . Esse botão  ' tem associado ao evento  , uma
Instrução SQL que atualiza os registros desejados. Isso aumenta em muito a nossa flexibilidade, evitando que o
usuário tenha que se deslocar para a Guia Consultas e executar uma consulta de Atualização.

Juntamente com a instrução J  , poderíamos utilizar Operadores e Funções do Microsoft Access . Também
podemos utilizar critérios em outros campos além do campo que está sendo atualizado. A título de exemplo,
vamos alterar a instrução SQL anterior.
O Alterar a instrução SQL do ítem anterior para que somente sejam aumentados os registros cujo PreçoUnitário
for maior ou igual a R$ 20,00 E cujo NúmeroDoPedido seja menor do que 10500.

J    J   


a   J   J    J    

   J   J    $ 
c
  J   c  J  (
 
Observe que utilizamos critérios em dois campos (J    e c  J  ) e que estes critérios
estão ligados por um operador , o que significa que um registro, somente será atualizado se ele atender aos dois
critérios ao mesmo tempo (PreçoUnitário maior ou igual a 20 e NúmeroDoPedido menor do que 10500). Se o
registro atender a apenas uma das condições, o mesmo não terá o seu PreçoUnitário atualizado.

Vamos refinar um pouco mais a nossa consulta de atualização. Vamos fazer com que somente sejam atualizados
os Pedidos para o ano da DataDoPedido igual a 1995, e ainda iremos manter os critérios adicionados até agora.
O Alterar a instrução SQL anterior para incluir um critério para que o Ano da DataDoPedido seja 1995. Você terá
que incluir a tabela J  , uma vez que o campo    J  , encontra-se nesta tabela.

J  J  
cc c  J   
c
J   c  J    J   c  J  
a   J   J    J    
 
   J   J    $ 
c
  J   c  J  (
 
c
    J  
!! 
Temos diversos detalhes interessantes a observar nesta instrução SQL. Primeiro um cc c relacionando as
tabelas J   e   J  , através do campo c  J  . Isso mostra que é perfeitamente
possível, utilizar um cc c dentro de uma consulta de atualização. Segundo: Temos a utilização da função
Year para extrair apenas o ano do campo DataDoPedido e compará-lo com o critério 1995.

Novamente vale a pena comentar que a utilização de Operadores e Funções, nos fornece uma grande flexibilidade
em termos de construção de nossas consultas.

Agora vamos passar a analisar as Instruções SQL para consultas do tipo Tabela de referência cruzada. Veremos
alguns exemplos, e os detalhes a respeito de cada instrução.
O Criar uma instrução SQL que liste o total de compras pelo NomeDaEmpresa e por ano da DataDoPedido.
Classificar a listagem em ordem crescente do NomeDaEmpresa.

 ca  
aJ       
   a  
a   c    

cc cJ   
c
 '   J   '    
cc c  J   
c
J   c  J    J   c  J  
 J c    
   c    
J    J  
Temos diversos detalhes a observar nesta instrução SQL. Primeiro a instrução  ca  , que calcula o valor
de cada ítem (usando a fórmula ([PreçoUnitário]*[Quantidade])*(1-[Desconto])) e a função Sum para somar
todos os ítens de um determinado cliente. A instrução  ca   equivale ao elemento   da Referência
Cruzada. Este valor calculado é que irá formar os valores da nossa referência cruzada. Temos também, a
utilização de dois cc c, um ligando Pedidos com Detalhes do Pedido, através do campo NúmeroDoPedido,
e outro ligando Pedidos com Clientes, através do campo CódigoDoCliente, uma vez que precisamos de
informações destas três tabelas.

A Cláusula  J agrupa a soma de todos os Pedidos de um determinado cliente, definido pelo campo
NomeDaEmpresa. Os diferentes clientes, formarão as diferentes linhas da nossa referência cruzada.

E por último, a utilização da palavra J, juntamente com a função Year, indicando que os diferentes Anos da
DataDoPedido irão compor as colunas da nossa referência cruzada.

Veja o que diz a Ajuda do Microsoft Access sobre a instrução TRANSFORM:


          )  ' Y

a  ca     


  
J   c# 
#    Y
   ca      

J   
        a         
      a  
     # )     !      *  
   
   
# 
#          !    

   


    '          )  ' # )  #   
    +   !       # '   
             

   ca         !        
,) a         a         !  
    J           # ) 
                 
    )          )  
   )        )  ' 

#            !      *    
  J       #  ) #      
  )  '    
    )          !    
#   # 
#        c     )   
#                 

O Criar uma instrução SQL que gere uma Consulta de tabela de referência cruzada. As   deverão ser
formadas pelo J ! da tabela . As colunas serão formadas pelo número do mês da
   J  e os valores serão formados pela contagem de pedidos. Adicionar um critério de tal forma que
somente sejam exibidos os registros para Brasil ou Alemanha.

 ca   J   c  J   a  c  J  


a   J ! 


cc cJ   
c
 '   J   '    
  J !     
 J J ! 
J    J  
Utilizamos a função   para contar o número de Pedidos por PaísDeDestino e por Mês. Também utilizamos um
cc c para relacionar as tabelas  e J  , através do campo '   . A utilização da
cláusula  , juntamente com o operador IN para limitar o PaísDeDestino a Brasil ou Alemanha. O  J
 indicando que o campo PaísDeDestino formará as linhas da referência cruzada. Finalmente a utilização de
J com a função  ) indicando que os meses da    J  formarão as colunas da referência
cruzada.

Agora vamos aprender a construir instruções SQL para consultas de exclusão. Veremos que a simplicidade da
linguagem SQL facilita em muito o entendimento e a aprendizagem destas instruções.
O Faça uma cópia da tabela Pedidos. Chame a cópia de CópiaDePedidos. Criar uma instrução SQl que elimine
todos os Pedidos da tabela CópiaDePedidos cujo PaísDeDestino seja a Alemanha

   ' J   J ! 



J  
 J   J !    
A instrução é tão simples, que praticamente dispensa comentários. A única recomendação importante é que não
devemos utilizar uma instrução    , sem a utilização de uma cláusula  . Utilizar um    sem uma
cláusula  significa que estaremos eliminando todos os registros da tabela.

Vamos criar instruções SQL com parâmetros (Consultas Parametrizadas), que ao serem executadas solicitam ao
usuário que seja digitado um valor para o parâmetro.
O Criar uma instrução SQL que selecione os campos NúmeroDoPedido, DataDoPedido, Frete e PaísDeDestino da
tabela Pedidos. Fazer com que ao ser executada, a consulta solicite que seja digitado o nome do País e que sejam
retornados apenas os Pedidos para o PaísDeDestino digitado.

a  J   c  J  J      J  J   J   J ! 



J  
 J   J !  J !

Na hora que esta instrução SQL é executada, o Microsoft Access localiza na cláusula WHERE, após o sinal de igual
a expressão:  J !
. Como esta expressão não é o nome de um campo de uma das tabelas que fazem
parte da consulta, o Microsoft Access abre uma janela pedindo que seja digitado um valor, este valor substitui a
expressão. Por exemplo, ao executar esta consulta o Microsoft Access pede que seja digitado o nome do País, se
você digitar Brasil, a cláusula WHERE fica da seguinte maneira:
WHERE (((Pedidos.PaísDeDestino="Brasil"))
, e somente serão listados os Pedidos cujo país de Destino for igual a Brasil. As aspas são colocadas pelo Microsoft
Access, porque o campo PaísDeDestino é do tipo texto.
O Alterar a instrução SQL do exemplo anterior para que além do PaísDeDestino, seja solicitada uma Data Inicial,
uma Data Final. Somente devem ser listados os registros para o País digitado e dentro do Período especificado.

a  
J   c  J  J      J  J   J   J ! 

J  
 J      J      
      
 c
J   J !  J !

Observe a utilização do operador  , junto com os parâmetros    
 e     
. Os
parâmetros nos campos DataDoPedido e PaísDeDestino estão ligados por um AND (Operador E), conforme
explicado anteriormente.

Existe uma série de detalhes sobre a utilização do SQL. Existem, também, diversas situações onde podemos
utilizar uma instrução SQL para retornar dados. Por exemplo, ao construir uma Caixa De Combinação em um
formulário, podemos utilizar uma Instrução SQL para buscar dados em uma Tabela, dados estes que serão
exibidos na Caixa de Combinação. Podemos utilizar instruções SQL, juntamente com Funções de Domínio para
exibir valores em formulários, como por exemplo, a média de vendas para um determinado período, o total de
vendas para um determinado cliente, e assim por diante.

r 
   
  

  
    !

Um bom ponto de partida é a Ajudo do Microsoft Access . Agora indicaremos alguns locais na Ajuda do Microsoft
Access, onde você poderá encontrar informações sobre SQL.

Selecione o comando * $ *      ou pressione a tecla F1. Clique na guia   .
Clique no sinal de + ao lado da opção "Trabalhar com Consultas". Surgem as opções:
O Criar consultas SQL.
O Trabalhar com instruções SQL.
Estas opções estão indicadas na figura a seguir:
Através destas duas opções você encontra muitas informações e exemplos sobre o uso da lingüagem SQL no
Microsoft Access.


  

A lingüagem SQL apresenta um padrão de comando/instruções para consultar, alterar e pesquisar tabelas de um
banco de dados. A implementação do SQL utilizada no Microsoft Access segue grande parte do padrão definido
pelo Ansi-92, mas apresenta algumas inconsistências, como por exemplo:
O Utiliza o * ao invés do % como caractere curinga
O Utiliza ³ ao invés de µ para critérios do tipo texto
0