Escolar Documentos
Profissional Documentos
Cultura Documentos
Sumário:
Funções de cálculo e agregação de dados no SQL:
-Função AVG;
-Função MAX;
-Função MIN.
Funções de cálculo – Função AVG
2
Próxima aula
Sumário:
Pesquisas com agregação de dados no SQL:
- Utilizando a cláusula GROUP BY;
- Utilizando a cláusula HAVING.
7
Exemplo:
11
Exempl
o:
SELECT codempresa, sum (valorprojecto)
FROM projecto
GROUP BY codempresa
HAVING sum(valorprojeto) > 380000.00;
14
Próxima aula
Sumário:
Exemplo1:
18
Exemplo2
: SELECT nome, email, idprojecto
FROM arquitecto, projarq
WHERE arquitecto.nridordem = projarq.nridordem
19
Próxima aula
Clausula JOIN.
Programação e Sistemas de Informação
Modulo14 – Linguagem de Manipulação de Dados
Sumário:
Clausula JOIN:
- INNER JOIN;
- RIGHT JOIN;
- LEFT JOIN.
21
INNER JOIN
INNER JOIN
INNER JOIN
INNER JOIN
Ao executar a consulta :
SELECT Nome_Marca, Matricula, Modelo
FROM Marca INNER JOIN Automovel ON Marca.Cod_Marca=Automovel.Marca;
o resultado é o seguinte:
Mostra todos os registos da tabela
Marca que possuem um registo
correspondente na tabela Automóvel.
Essa correspondência é feita através do
campo que contem o código da marca
nas duas tabelas.
Oito automóveis estão associados a
alguma marca, enquanto que os demais
não.
25
RIGHT JOIN
RIGHT JOIN
Exemplo:
SELECT Nome_Marca, Matricula, Modelo
FROM Marca RIGHT JOIN Automovel ON Marca.Cod_Marca = Automovel.Marca;
LEFT JOIN
LEFT JOIN
SELECT Nome_Marca, Matricula, Modelo
FROM Marca LEFT JOIN Automovel ON Marca.Cod_Marca=Automovel.Marca;
Resumindo...
Junto com o INNER JOIN, existem o LEFT JOIN e o RIGHT JOIN, que
funcionam de maneira semelhante.
O INNER JOIN, faz o relacionamento entre duas tabelas e depois exibe o que
está nas duas tabelas do relacionamento indicado.
O LEFT JOIN faz a mesma coisa, porém retorna os dados de acordo com a
tabela da esquerda (a primeira tabela que foi declarada), independentemente de
no relacionamento com a tabela da direita possuir ou não o valor do campo de
relacionamento.
O RIGHT JOIN faz o mesmo que o LEFT JOIN, porém retorna os dados de
acordo com a tabela da direita (a segunda tabela que foi declarada),
independentemente de no relacionamento com a tabela da esquerda possuir ou
não o valor do campo de relacionamento.
30
A nível de resultado final, não existem diferenças entre junções via JOINs ou
via cláusula WHERE. A utilização da cláusula JOIN resulta de uma evolução
da linguagem SQL, embora possam ser utilizadas ambas as formas uma vez que
versões mais recentes tentam sempre manter a compatibilidade com versões
mais antigas.
Se ambas produzem o mesmo resultado, quais serão as razões para preferir
uma construção em detrimento de outra?
Clareza de código: O uso de JOIN’s não “polui” o código. As junções na
cláusula WHERE confundem, pois não se sabe, com um simples olhar, o que é
filtro e o que é junção. É mau encontrar um instrução SQL com 20 condições
variando entre junções e filtros.
31
Próxima aula
Uniões em SQL.
Programação e Sistemas de Informação
Modulo14 – Linguagem de Manipulação de Dados
Sumário:
Uniões em SQL:
UNION
UNION
Une duas operações de pesquisa (SELECT).
As duas pesquisas devem ter o mesmo número de campos, e
estes devem de ser do mesmo tipo de dados.
O resultado apenas apresentará registos distintos.
Nota: Caso os nomes dos campos sejam diferentes nas duas tabelas,
os nomes dos campos resultantes são os dos campos presentes no
primeiro SELECT.
35
UNION
UNION
Considere a seguinte consulta-união:
SELECT Nome, Vencimento FROM Empregados_Guimarães
UNION
SELECT Nome_Empregado, Vencimento FROM Empregados_Lisboa;
UNION ALL
UNION ALL
UNION ALL
Executando a seguinte consulta – união:
Próxima aula
Subpesquisas em SQL.
Programação e Sistemas de Informação
Modulo14 – Linguagem de Manipulação de Dados
Sumário:
Subpesquisas em SQL.
41
Subpesquisas
Pesquisas encadeadas no SQL
Por vezes é necessário obter alguns dados para posteriormente serem
utilizados como condições de outras pesquisas. Pode fazer-se
recorrendo a uma nova estrutura SELECT-FROM-WHERE contida
na cláusula WHERE da pesquisa exterior.
NOTA:
Nas pesquisas encadeadas
OP podem utilizar-se todos os
operadores (desiganados
na sintaxe geral por OP)
vistos anteriormente-
lógicos/comparação
42
Subpesquisas
Exemplo1: Uma só tabela
Pretende-se saber todos os números de projetos, zona e
codempresa das empresas que têm projetos no Porto: Resultado
SELECT idprojecto, zona, codempresa do
FROM projecto Pesquisa SELECT A
servirá de
WHERE codempresa IN B critério ao
(SELECT codempresa FROM projecto SELECT B
WHERE zona=“Porto”); Pesquisa (Exterior)
A
Nota: As pesquisas encadeadas começam sempre pela pesquisa
encadeada e só depois vem a pesquisa exterior. Neste exemplo
executa primeiro o SELECT A e com o resultado deste executa o
SELECT B.
43
Subpesquisas
Exemplo2 – Duas tabelas
Subpesquisas
Subpesquisas
Exemplo3 – Duas tabelas
Nota: Por vezes pode ser necessário usar as funções de calculo
nas pesquisas e com o resultado dessas funções fazer novas
pesquisas.
Neste caso, pretende-se saber qual o código e o nome das
empresas cujo valor dos projetos é superior à média dos mesmos.
SELECT projecto.codempresa, nome
FROM empresa INNER JOIN projecto
ON empresa.codempresa=projecto.codempresa
WHERE valorprojecto > (SELECT AVG (valorprojecto) FROM projecto);
46
Subpesquisas
Próxima aula
Sumário:
Manipulação de dados em tabelas no SQL:
-Inserção;
-Atualização;
-Eliminação;
-Visualização;
49
Exemplo1- Pretende-se:
Sintaxe:
Exemplo:
UPDATE Empresa
SET telefone = 253675436
WHERE codEmpresa = 2;
55