Exercicios banco de dados
--Cadastro de usuário
CREATE OR REPLACE FUNCTION cad_funcionario(nome varchar(40), data_nasc date, departamento int, salario float) returns void as $$ BEGIN insert into funcionario(num_departamento, nome, data_nasc, salario) values(departamento, nome, data_nasc, salario); END;
$$ LANGUAGE plpgsql;
Exercício 03) Faça o mesmo procedimento do exercício 2 para as tabelas departamento e projeto.
--Cadastro de departamento
CREATE OR REPLACE FUNCTION cad_departamento(nome varchar(40), gerente int) returns void as $$ BEGIN insert into departamento(nome, cod_gerente) values(nome, gerente); END;
$$ LANGUAGE plpgsql;
--Cadastro de projeto
CREATE OR REPLACE FUNCTION cad_projeto(departamento int, nome varchar(40), duracao interval) returns void as $$ BEGIN insert into projeto(num_departamento, nome, duracao) values(departamento, nome, duracao); END;
$$ LANGUAGE plpgsql;
Exercício 04) Crie uma função que receba como parâmetro o número de um departamento e retorne o total de horas trabalhadas pelo seu gerente.
--Horas trabalhadas do gerente
CREATE OR REPLACE FUNCTION horas_gerente(num_departamento int) returns interval as $$ DECLARE
rs1 RECORD; rs2 RECORD; total_horas interval;
BEGIN select into rs1 cod_gerente from departamento where cod_departamento = num_departamento;
total_horas:='00:00:00';
for rs2 in select * from participa where cod_funcionario = rs1.cod_gerente loop total_horas = total_horas + rs2.horas_trabalho; end loop;
RETURN total_horas;
END;
$$ LANGUAGE plpgsql;
Exercício 05) Crie uma função que some as horas trabalhadas em cada projeto e atualize a duração dos mesmos (em dias).
--Horas trabalhadas no projeto
CREATE OR REPLACE FUNCTION