Escolar Documentos
Profissional Documentos
Cultura Documentos
Com a inteno de facilitar a compreenso desta poderosa e til ferramenta de Banco de Dados, eu venho trazer alguns exemplos prticos e algumas observaes sobre a SQL.
SQL e salvar como consulta, depois criar um Formulrio ou um Relatrio baseado nesta Consulta. Podem os usar tambm em funes agregadas, caixas de cobinao (quando usamos os assistentes para estes controles ou em Pesquisas), origem da linha destes 2 controles como argumento Condio Onde da ao AbrirFormulrio ou AplicarFiltro, como argumento de domnio ou critrio em uma funo agregada de domnio ou como definio para as propriedades Origem do Registro ou Origem da Linha.
INSTRUES SQL
Uma Instruo SQL utilizada no Access como uma String ou sequncia de caracteres. SELECT - Obtm um grupo de registros e insere os registros em um dynaset ou em uma tabela UPDATE - Define os valores dos campos de uma tabela em uma atualizao TRANSFORM - Cria uma tabela de resumo, utilizando o contedo de um campo como cabealho de cada coluna DELETE FROM - Remove registros de uma tabela INSERT INTO - Acrescenta um grupo de registros a uma tabela.
ALTER TABLE
Alterando a estrutura de uma Tabela. Adicionando um Campo ALTER TABLE Clientes ADD COLUMN Email TEXT; Removendo um Campo ALTER TABLE Funcionrios DROP COLUMN Cargo;
DROP TABLE
Excluindo uma Tabela DROP TABLE Clientes;
EXECUTANDO A CONSULTA
Execute a Consulta (Clique no ponto de interrogao).
CLUSULA WHERE
A Clusula Where como um filtro. uma condio.
PREDICADOS DA CLUSULA WHERE: LIKE, IN e BETWEEN LIKE - Use este quando j souber o que est procurando IN - Este quando desejar procurar em uma lista
SELECT * FROM Clientes WHERE Nome LIKE 'Rob*'; SELET DISTINCT Cdigo FROM Clientes WHERE Cdigo IN ('JM2', 'LK5', 'DN7'); Usando o NOT: ... WHERE Cdigo NOT IN ... SELECT * FROM Clientes WHERE Nome BETWEEN 'Ana' AND 'Luiz'; Usando o NOT: ... NOT BETWEEN ...
CLUSULA ORDER BY
Ordenar por SELECT * FROM Clientes ORDER BY Nome DESC; DESC ou ASC so opcionais. ASC o default.
GROUP BY
SELECT * FROM Clientes GROUP BY Nome;
INNER JOIN
Cria uma Consulta que une os registros das duas Tabelas, mas somente aqueles onde os Campos Chaves so iguais. Na jenela da Consulta d um duplo clique na linha de relacionamento entre as Tabelas. Este o tipo padro do Access, o tipo 1. O tipo 2 o LEFT JOIN e o 3 o RIGHT JOIN. Este tipo representado com uma linha sem setas. SELECT * FROM Clientes INNER JOIN Pedidos ON Clientes.Cdigo=Pedidos.CdigoCli; Podemos usar o AND e OR para auxiliar o ON.
Gera uma Consulta com nmero de Campos igual soma dos Campos das duas Tabelas e com nmero de registros igual a aos que atendam ao Critrio em ON..
LEFT JOIN
Esta vai incluir todos os registros da Tabelas da Esquerda e somente os da Direita quando os Campos Chaves forem iguais. representado na tela da Consulta entre as Tabelas, como uma seta para a Direita. SELECT * FROM Clientes LEFT JOIN Pedidos ON Clientes.Cdigo = Pedidos.CdigoCli;
RIGHT JOIN
Este inclui todos os registros da Tabela da Direita e somente os da esquerda quando as Chaves forem iguais. representado na tela da Consulta entre as Tabelas, como uma seta para a Esquerda. A associao aqui ao contrrio: LeftJoin tem seta para a direita e RightJoin para a esquerda. SELECT * FROM Clientes RIGHT JOIN Vendas ON Clientes.CodCli = Vendas.CodCli; Obs.: Em todas as 3 podemos utilizar os operadores: <, >, <= e => entre outros.
FUNO COUNT
SELECT COUNT (Nome) FROM Clientes; SELECT DISTINCT COUNT (Nome) FROM Clientes;
FUNO SUM
SELECT SUM ([Quantidade]) AS [Total de Vendas] FROM Vendas; SELECT DISTINCT SUM (Remunerao) AS [Total do Salrio] FROM Funcionrios;
FUNO MAX
SELECT MAX (Remunerao) AS [Maior Salrio] FROM Funcionrios;
FUNO MIN
SELECT MIN (Remunerao) AS [Menor Salrio] FROM Funcionrios;
SUB-CONSULTAS
SELECT Nome FROM Pedidos, Clientes WHERE Pedidos.CdigoCli = Clientes.Cdigo AND Pedidos.Cdigo = (SELECT MAX (Pedidos.Cdigo) FROM Pedidos WHERE DataVenda >= #11-28-1989#);
ATUALIZAO
UPDATE Clientes SET Estado = 'Ce' WHERE Cidade = 'Fortaleza';