Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouJónatas de Sequeira da Costa Alterado mais de 7 anos atrás
1
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views
2
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 2 Tópicos Consultas complexas que permitem que os usuários especifiquem recuperações mais complexas do banco de dados: Consultas aninhadas, tabelas de junção, funções agregadas e agrupamento Especificando Restrições como Asserções e Ações como Triggers Visões (Views) – Tabelas Virtuais em SQL
3
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 3 Cada valor NULL individual é considerado diferente de qualquer outro valor NULL A SQL permite consultas que verificam se o valor de um atributo é NULL IS ou IS NOT NULL Comparações envolvendo NULL
4
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 4 Consultas aninhadas e comparações de conjunto/ multiconjunto Consultas aninhadas São blocos select-from-where completos dentro da cláusula WHERE de outra consulta Operador de comparação IN Compara um valor v com um conjunto (ou multiconjunto) de valores V Avalia como TRUE se v for um dos elementos em V
5
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 5 Consultas aninhadas (cont.) Recuperar os números dos projetos que possuem um funcionário com o sobrenome ‘Silva’ envolvido como gerente ou como funcionário
6
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 6 Consultas aninhadas (cont.) Permite o uso de tuplas de valores em comparações Colocando-os entre parênteses Exemplo: Recupere os Fcpfs de todos os funcionários que trabalham na mesma combinação (projeto, horas) em algum projeto que o funcionário João (Cpf=‘12345678966’) trabalha.
7
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 7 Outros operadores de comparação podem ser usados para comparar um único valor v O operador = ANY (ou = SOME) Retorna TRUE se o valor v for igual a algum valor no conjunto V e portanto é equivalente a IN Outros operadores que podem ser combinados com ANY (ou SOME) e ALL: >, >=, Consultas aninhadas (cont.) SELECT Pnome, Unome FROM FUNCIONARIO WHERE Salario > ALL (SELECT Salario FROM FUNCIONARIO WHERE Dnr=5);
8
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 8 Consultas aninhadas(cont.) Para evitar erros e ambiguidades em potencial Criar variáveis de tupla (apelidos) para todas as tabelas referenciadas em uma consulta SQL
9
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 9 As funções EXISTS e UNIQUE em SQL Função EXISTS Verificar se o resultado de uma consulta aninhada correlacionada é vazio ou não EXISTS e NOT EXISTS Costumam ser usados em conjunto com uma consulta aninhada correlacionada
10
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 10 Conjuntos explícitos e renomeação de atributos em SQL É possível usar um conjunto explícito de valores na cláusula WHERE É possível usar o qualificador AS seguido pelo novo nome desejado Renomear qualquer atributo que apareça no resultado de uma consulta SELECT DISTINTIC Fcpf FROM TRABALHA_EM WHERE Pnr IN (1, 2, 3);
11
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 11 Tabelas de junção em SQL e junções externas (outer joins) Tabela de junção Permite especificar uma tabela resultante de uma operação de junção na cláusula FROM de uma consulta A cláusula FROM em C1A Contém uma única tabela de junção
12
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 12 Tabelas de junção em SQL e junções externas (cont.) Permite especificar diferentes tipos de junção NATURAL JOIN Vários tipos de OUTER JOIN NATURAL JOIN sobre duas relações R e S Nenhuma condição de junção é especificada para cada par de atributos com o mesmo nome de R e S Se os nomes de atributos de junção não forem os mesmos nas relações da base, é possível renomear os atributos de modo que eles se combinem.
13
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 13 Tabelas de junção em SQL e junções externas (cont.) Inner join O tipo padrão de junção em uma tabela de junção Tupla é incluída no resultado somente se uma tupla combinar na outra relação LEFT OUTER JOIN Toda tupla na tabela da esquerda precisa aparecer no resultado; Se não tiver uma tupla combinando Preenchida com valores NULL para os atributos da tabela da direita
14
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 14 RIGHT OUTER JOIN Toda tupla na tabela da direita precisa aparecer no resultado Se não tiver uma tupla combinando Preenchida com valores NULL para os atributos da tabela da esquerda FULL OUTER JOIN, CROSS JOIN É possível aninhar especificações de junção Tabelas de junção em SQL e junções externas (cont.)
15
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 15 Funções de agregação em SQL São usadas para resumir informações de várias tuplas em uma síntese de tupla única Funções de agregação embutidas COUNT, SUM, MAX, MIN e AVG Essas funções podem ser usadas na cláusula SELECT ou em uma cláusula HAVING
16
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 16 Funções de agregação em SQL (cont.) Valores NULL são descartados quando as funções de agregação são aplicadas a determinada coluna (atributo)
17
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 17 Agrupamento: as cláusulas GROUP BY e HAVING Particionar a relação em subconjunto de tuplas Baseado no atributo(s) de agrupamento Aplicar a função a cada grupo desse tipo independentemente Cláusula GROUP BY Especifica os atributos de agrupamento Se houver NULLs no atributo de agrupamento Um grupo separado é criado para todas as tuplas com um valor NULL no atributo de agrupamento.
18
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 18 Grouping: The GROUP BY and HAVING Clauses (cont’d.) Cláusula HAVING Oferece uma condição sobre a informação de resumo SELECT Dnome FROM FUNCIONARIO, DEPARTAMENTO WHERE Dnr=Dnumero GROUP BY Dnome HAVING COUNT(*) > 3;
19
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 19 Discussão e resumo das consultas em SQL
20
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 20 Especificando restrições como asserções e ações como triggers CREATE ASSERTION Especifica tipos adicionais de restrições que estão fora do escopo das restrições embutidas do modelo relacional CREATE TRIGGER Especifica ações automáticas que o sistema de banco de dados realizará quando certos eventos e condições ocorrerem
21
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 21 Especificando restrições gerais como asserções em SQL CREATE ASSERTION Especificar uma consulta que seleciona quaisquer tuplas que violam a condição desejada Usado somente em casos onde não é possível usar CHECK sobre atributos e domínios
22
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 22 Introdução a Triggers em SQL Comando CREATE TRIGGER Usada para monitorar o banco de dados Um trigger típico tem três componentes: Evento(s) Condição Ação
23
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 23 Introdução a Triggers em SQL Sintaxe CREATE TRIGGER (AFTER | BEFORE) ON [FOR EACH ROW] [WHEN ] ; Exemplo 1 CREATE TRIGGER T1 AFTER INSERT ON Funcionario FOR EACH ROW INSERT INTO Cadastro_Func VALUES (Curdate(), Curtime());
24
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 24 Introdução a Triggers em SQL Exemplo 2 ALTER TABLE departamento ADD COLUMN total_funcionario INT; UPDATE departamento SET total_funcionario=0; DELIMITER $$ CREATE TRIGGER T2 AFTER INSERT ON funcionario FOR EACH ROW BEGIN UPDATE departamento SET total_funcionario = total_funcionario + 1 WHERE dnumero=new.dnr; END$$ DELIMITER ;
25
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 25 Visões (views) – Tabelas virtuais em SQL Conceito de uma view em SQL Tabela única derivada de outras tabelas Considerada uma tabela virtual
26
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 26 Especificação das views em SQL Comando CREATE VIEW Recebe um nome de tabela (virtual), ou nome de view, uma lista de nomes de atributo e uma consulta para especificar o conteúdo da view
27
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 27 Especificar consultas SQL em uma view View sempre atualizada Responsabilidade do SGBD, e não do usuário Comando DROP VIEW Descarta uma view Especificação das views em SQL (cont.)
28
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 28 Resumo SQL complexo: Consultas aninhadas, tabelas com junções, junções externas, funções de agregação e agrupamento CREATE ASSERTION e CREATE TRIGGER Views Tabelas virtuais ou derivadas
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.