Buscar

Exercicio Implementação BDs com respostas

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

create table cargos (
 codigo int primary key,
 nome varchar(20)
);
create table departamentos (
 codigo int primary key,
 nome varchar(20),
 ramal int
);
create table funcionarios (
 matricula int primary key,
 nome varchar(50),
 cpf char(11),
 endereco varchar(250),
 salario float,
 cod_cargo int references cargos,
 lotacao int references departamentos
);
insert into cargos values (1, 'Diretor');
insert into cargos values (2, 'Vendedor');
insert into cargos values (3, 'Gerente');
insert into cargos values (4, 'Segurança');
insert into cargos values (5, 'Auxiliar');
insert into departamentos values (1, 'COMERCIAL', 123);
insert into departamentos values (2, 'DIRETORIA', 456);
insert into departamentos values (3, 'FINANCEIRO', 789);
insert into departamentos values (4, 'GERENCIA', null);
insert into departamentos values (5, 'RH', null);
insert into departamentos values (6, 'RECEPCAO', null);
insert into departamentos values (7, 'SEGURANCA', null);
insert into departamentos values (8, 'ADMINISTRATIVO', null);
insert into departamentos values (9, 'COZINHA', null);
insert into departamentos values (10, 'LIMPEZA', null);
CREATE OR REPLACE FUNCTION criar_func()
 RETURNS integer AS
$BODY$
declare num int;
declare dep int;
declare cargo int;
BEGIN
num := 1;
dep := 0;
cargo := 0;
while (num <= 300000)
loop
 insert into funcionarios (matricula, nome, endereco, salario, cpf, lotacao, cod_cargo)
 values (num, 'Nome ' || num::varchar, 'Endereço ' || num::varchar,
 num / (dep + 1), num::varchar, dep + 1, cargo + 1);
 
 dep := (dep + 1) % 10;
 cargo := (cargo + 1) % 5;
 
 num := num + 1;
end loop;
return 0;
end;
$BODY$
 LANGUAGE plpgsql VOLATILE
 COST 100;
ALTER FUNCTION criar_func()
 OWNER TO postgres;
select criar_func();

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando

Outros materiais