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 …exibir mais conteúdo…
--Excluir registro de participações
CREATE OR REPLACE FUNCTION del_participacao(departamento int) returns void as $$
DECLARE
rs RECORD;
BEGIN
for rs in select cod_projeto from projeto where num_departamento = departamento loop
delete from participa where cod_projeto = rs.cod_projeto;
end loop;
END;
$$ LANGUAGE plpgsql;
Exercício 07) Crie uma função que receba como parâmetros dois valores de porcentagem e aumente com o primeiro valor os salários dos funcionários nascidos antes de 1980 e com o segundo valor aumente o salário dos funcionários nascidos em 1980 ou depois.
--Incrementa salario
CREATE OR REPLACE FUNCTION add_salario(p1 float, p2 float) returns void as $$
DECLARE
rs RECORD;
BEGIN
for rs in select * from funcionario loop
if date_part('year', cast(rs.data_nasc AS timestamp)) < 1980 then update funcionario set salario = (rs.salario + ((salario * p1)/100)) where cod_funcionario = rs.cod_funcionario; end if;
if date_part('year', cast(rs.data_nasc AS timestamp)) > 1980