A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.

Apresentações semelhantes


Apresentação em tema: "Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views."— Transcrição da apresentação:

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


Carregar ppt "Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views."

Apresentações semelhantes


Anúncios Google