Você está na página 1de 4

1

EXERCCIO DE REVISO PARA PROVA NOME: Gildel Silva - 25597 DISCIPLINA: Banco de Dados II TURNO: Noite PROF.: RODRIGO VITORINO MORAVIA

Valor: 2 pts

Exerccios para fixao. As solues propostas devem utilizar os conceitos apresentados em aula. Enviar para o e-mail rmoravia@inforium.com.br at o dia 12/03/12. Aps esta data, sero descontados 0,5 pontos por dia de atraso.
1. O que as querys abaixo devero retornar? Mesmo que apresente ERRO, explique o motivo do erro. SELECT d.nom_depto ,sum(e.salario) FROM empregado as e Join departamento d On d.sgl_departamento = e.sgl_departamento GROUP BY d.nom_depto Having sum(e.salario) >= 3200 Retorna nome do departamento e salario > 3200.
SELECT d.nom_depto ,sum(e.salario) FROM empregado as e Join departamento d On d.sgl_departamento = e.sgl_departamento GROUP BY d.nom_depto Having sum(e.salario) >= 3200 order by e.salario

Quando ha agregacao deve ser utilizado o group by . SELECT FROM sexo ,sum(salario) empregado

Quando ha agregacao deve ser utilizado o group by .

SELECT DISTINCT sexo FROM empregado ORDER BY salario DESC Para ordenar por salario, este atributo deve constar no select.

SELECT FROM ORDER BY

Top 5 nom_empregado, salario empregado salario

Retorna nome dos empregados e seus respectivos salarios ordenando por salario.

SELECT FROM ORDER BY

Top 5 nom_empregado, salario empregado salario desc

Retorna nome dos empregados e seus respectivos salarios ordenando por salario de forma decrescente.

SELECT E.nom_empregado , ISNULL(P.nom_projeto,'Nenhum projeto associado') as Projetos , ISNULL(DP.nom_dependente,'No possui dependente') as Dependente FROM empregado AS E LEFT JOIN empregado_projeto AS EP ON E.seq_empregado = EP.seq_empregado LEFT JOIN projeto AS P ON P.seq_projeto = EP.seq_projeto LEFT JOIN dependente DP on DP.seq_empregado = E.seq_empregado Retorna nome do empregado, seus dependentes e os projetos em que o empregado participa.

SELECT E.nom_empregado , ISNULL(D.nom_dependente,'No possui dependente') as Dependente FROM dependente AS D RIGHT JOIN empregado E on D.seq_empregado = E.seq_empregado Retorna nome do empregado e seus dependentes.

2. Qual a funo de uma view? Facilitar e disponibilizar consultas utilizadas frequentemente em um bnco de dados. 3. Quais as vantagens de se criar uma tabela temporria? Simplifica o trabalho quando se tem cenrios complexos e agiliza a consulta justificando o custo do desempenho da consulta

4. Sabemos que Where e Having so utilizados como filtro. Escreva com as suas palavras quando devemos utilizar estas condies: Having - Permite especificar uma ou mais condies que sero analisadas aps o agrupamento dos registros pelo GROUP BY. Where - Esta sentena permite criar critrios para seleo de registros, funcionando como a estrutura condicional if .

5 - Qual das querys abaixos, exibe os departamentos com 3 ou mais funcionrios? ( ) select d.nom_depto [Departamento], count(*) [Qtd_Funcionarios] from empregado e join departamento d on d.cod_depto = e.cod_depto where count(*) > 3 group by d.nom_depto ( ) select d.nom_depto [Departamento], count(*) [Qtd_Funcionarios] from empregado e join departamento d on d.cod_depto = e.cod_depto group by d.nom_depto having count(*) > 3

) select d.nom_depto [Departamento], count(*) [Qtd_Funcionarios] from empregado e join departamento d on d.cod_depto = e.cod_depto

4 group by d.nom_depto having count(*) >= 3 ( x ) select d.nom_depto [Departamento], count(*) [Qtd_Funcionarios] from empregado e join departamento d on d.cod_depto = e.cod_depto where count(*) >= 3 group by d.nom_depto

Você também pode gostar