Banco de Dados (TI) — Deadlock
Nas questões 41 até 49 considere um banco de dadossimplificado referente ao controle de concursos, constituídopelas tabelas Concurso, Cargo, Candidato e Inscrição,criadas pelo script SQL mostrado abaixo.create table concurso (id_concurso int not null primary key,concurso varchar(60) not null);create table cargo (id_cargo int not null primary key,cargo varchar(60) not null,id_concurso int not null,constraint ci0 foreign key (id_concurso)references concurso (id_concurso));create table candidato (id_candidato int not null primary key,nome varchar(40) not null);create table inscrição(id_concurso int not null,id_candidato int not null,id_cargo int,pontos int,constraint ci1 foreign key (id_concurso)references concurso (id_concurso),constraint ci2 foreign key (id_candidato)references candidato (id_candidato),constraint ci3 foreign key (id_cargo)references cargo(id_cargo),constraint ci4 primary key(id_concurso,id_candidato));Um candidato pode estar inscrito em zero ou maisconcursos e um concurso pode ter zero ou mais candidatosnele inscritos. Para cada concurso, o candidato inscreveseem um cargo e recebe um número de pontos. É possívelque um candidato fique temporariamente sem cargo definido.Cada concurso tem uma lista de um ou mais cargos nosquais os candidatos podem estar inscritos.
Considere que o script SQL abaixo tenha sido executado com sucesso.
create view xxx as select c.id_concurso, concurso, cg.id_cargo, cargo, sum(pontos) y from concurso c inner join inscrição i on c.id_concurso=i.id_concurso inner join cargo cg on cg.id_cargo=i.id_cargo group by c.id_concurso, concurso, cg.id_cargo, cargo
O comando select concurso, cargo, y/ (select count(*) from inscrição i where i.id_concurso=xxx.id_concurso and i.id_cargo=xxx.id_cargo) z from xxx
produz:
Uma questão respondida. E as próximas?
Crie sua conta para acompanhar acertos, erros e receber recomendações no Meu Próximo Passo.
Criar conta grátis