Você está na página 1de 3

TRABALHO BANCO DE DADOS II

Nome: Leonardo Silva Reis


Matrícula: 20161016013

1-Formule e escreva 3 consultas aninhadas aplicadas às bases de


dados utilizadas

Consulta que relaciona a tabela empregado com o local de trabalho de acordo


com um essn específico

SELECT e.* from empregado e join trabalha_em t on e.ssn = t.essn WHERE t.essn
in (SELECT essn from trabalha_em WHERE essn = 888665555 ),

Consulta que relaciona a tabela candidato com seu nível de formação

SELECT c.* from candidato c WHERE EXISTS(SELECT cod_formacao from


formacao fo WHERE c.cod_candidato = fo.cod_formacao ) AND NOT EXISTS
(SELECT cod_nivel from nivel_formacao ni WHERE c.cod_candidato = ni.cod_nivel )

Consulta que relaciona a tabela empregado e a tabela trabalha_em, mostrando


onde qual unidade em que trabalha.

SELECT e.* from empregado e join trabalha_em t on e.dno = t.pno WHERE t.pno in
(SELECT pno from trabalha_em WHERE pno = 1)

2-Formule e escreva 2 stored procedures (1 delas com uso de


parâmetros) sobre a base de dados Concurso

● Procedure que lista as formações dos respectivos candidatos

sp_ListaFormacao
BEGIN

SELECT * from formacao ;

END
● Procedure que adiciona um candidato na tabela
sp_AdiconaCandidato
BEGIN
insert into candidato (cod_candidato, nome,telefone,
endereco) values(codcli, nome,tel,ende);
END

3- Formule e escreva 3 visões, 1 em cada base de dados utilizada.


Todas as visões devem utilizar-se de alguma função de agregação
(count, sum, min ou max)

● View que mostra o máximo de empréstimo feito


CREATE VIEW vw_maxemprestimos as
Select max(total) from emprestimo;
● View que soma as horas trabalhadas
CREATE VIEW vw_somahoras as
Select sum(horas) from trabalha_em;
● View que soma o tempo de serviço dos candidatos
CREATE VIEW vw_temposervico AS
SELECT SUM(tempo_servico) from candidato;

4 - Formule e escreva 2 funções a serem aplicadas em quaisquer


das bases de dados. Pelo menos 1 função deve conter declaração
de variável estrutura condicional em seu código.

● Função que retorna o salário máximo da tabela empregado


CREATE FUNCTION salario_maximo (dept TINYTEXT) RETURNS INT RETURN
(SELECT MAX(salario) FROM empregado WHERE empregado.ssn = ssn);

● Função que retorna o nível do candidato conforme o tempo de serviço


BEGIN
DECLARE temp float;
SELECT tempo_servico into temp FROM candidato WHERE
cod_candidato = codcan;
CASE
WHEN tempo_servico >= 8.0 THEN RETURN 'Senior';
WHEN tempo_servico >= 6.0 THEN RETURN 'Pleno';
WHEN tempo_servico >= 2.0 THEN RETURN 'Junior';
ELSE RETURN 'Sem experiencia';
END CASE;

END

Você também pode gostar