BD UNIDADE 5 SQL B Exercícios

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 13

Linguagens, Restrições e

Visões
SQL – Parte B
(Exercícios)
Prof. Alexandre L. Gonçalves
E-mail: [email protected]
 Exercício 1
 Considerando a consulta abaixo faça uma proposição utilizando visões
de modo que a mesma seja simplificada. A consulta como um todo não
deve se tornar uma visão:

select produto.* from produto,


(select max(qtde_total) as qtde_total
from (select np.cod_produto, sum(np.qtde) as qtde_total
from nota_produto np, nota nt
where np.num_nota = nt.num_nota and
nt.data between '2020-10-01' and ‘2020-12-31'
group by np.cod_produto
)as prod_sum_in) as prod_max,
(select np.cod_produto, sum(np.qtde) as qtde_total
from nota_produto np, nota nt
where np.num_nota = nt.num_nota and
nt.data between '2020-10-01' and '2020-12-31'
group by np.cod_produto
) as prod_sum
where produto.cod_produto = prod_sum.cod_produto and
prod_sum.qtde_total = prod_max.qtde_total; 2 2
 Exercício 2

- Modelo conceitual do exercício 2-1 3 3


 Exercício 2

1. Selecione os livros que foram emprestados por


determinado associado nos últimos dois meses
(escolha uma data fixa). Considere como retorno o
nome do livro, a data de empréstimo e a data de
devolução. O retorno deve ser ordenado de maneira
descendente pela data de empréstimo;

2. Selecione todos os livros que contenham a palavra


“Banco de Dados” em qualquer parte do título;

4 4
 Exercício 3

5 5
 Exercício 3

1. Selecione o nome de todos os fornecedores cujo valor


médio dos preços de seus produtos seja superior a R$
100,00.

6 6
 Exercício 4

- Modelo conceitual do exercício 2-4 7 7


 Exercício 4

1. Liste todos os garçons indicando o total de pedidos de


cada um, bem como a soma das despesas resultantes
dos pedidos (valor * quantidade). Crie nessa seleção
uma coluna calculada que indicará o valor a ser
recebido por determinado garçom aplicando 15% sobre
o somatório de valor * quantidade. Filtre a consulta pelo
período fixo de um mês;

2. Liste em ordem decrescente o faturamento dos bares


apresentando o nome do bar e considerando que o
faturamento será calculado pela soma de valor *
quantidade menos 15%;
8 8
Exercício 5

9 9
Exercício 5
CREATE TABLE perfil ( CREATE TABLE projeto (
codigo integer PRIMARY KEY, codigo integer PRIMARY KEY,
descricao varchar(50), descricao varchar(50)
custo_hora decimal );
);
CREATE TABLE categoria (
CREATE TABLE atividade_colaborador ( codigo integer PRIMARY KEY,
cod_colaborador integer, descricao varchar(50)
cod_atividade integer, );
perc_colaboracao integer,
PRIMARY KEY(cod_colaborador,cod_atividade)
);

CREATE TABLE colaborador (


codigo integer PRIMARY KEY,
nome varchar(50),
cod_perfil integer,
FOREIGN KEY(cod_perfil) REFERENCES perfil (codigo)
);

10 10
Exercício 5
CREATE TABLE atividade (
codigo integer PRIMARY KEY,
descricao varchar(50),
qtde_hora_prevista integer,
qtde_hora_total integer,
cod_projeto integer,
cod_categoria integer,
FOREIGN KEY(cod_projeto) REFERENCES projeto (codigo),
FOREIGN KEY(cod_categoria) REFERENCES categoria (codigo)
);

ALTER TABLE atividade_colaborador


ADD FOREIGN KEY(cod_colaborador) REFERENCES colaborador (codigo);
ALTER TABLE atividade_colaborador
ADD FOREIGN KEY(cod_atividade) REFERENCES atividade (codigo);

11 11
 Exercício 5
Considerando o modelo lógico do exercício e o esquema do
banco de dados desenvolva as consultas a seguir:

1) Obtenha uma relação de colaboradores com seus


respectivos perfis;
2) Obtenha uma relação de todos os colaboradores que
possuam o perfil ‘Desenvolvedor’;
3) Elabore uma consulta que recupere do banco de dados
todos os colaboradores de maneira distinta de um
determinado projeto. Utilize um código de projeto qualquer;
4) Obtenha uma relação de todos os projetos cadastrados no
banco de dados e a quantidade de colaboradores
vinculados a cada projeto;

A tabela de perfil possui as seguintes linhas: Desenvolvedor, Tester,


Gerente, Analista e Redator;
A tabela categoria possui as seguintes linhas: Teste, Modelagem, Análise,
12
Gestão, Desenvolvimento e Documentação; 12
 Exercício 5
5) Obtenha uma relação de todos os projetos cadastrados no banco
de dados em que a soma das horas totais (qtde_hora_total) seja
maior que a soma das horas previstas (qtde_hora_prevista);
6) Selecione todos os projetos em que o custo final de execução for
superior a 15% do custo estimado inicialmente. O custo final é
calculado multiplicando o total de horas gastas * o percentual de
participação de determinado colaborador em uma atividade * o
custo hora de determinado perfil do colaborador vinculado a uma
atividade. Cálculo similar deve ser utilizado para o custo previsto
considerando o total de horas previstas;
7) Selecione a média de horas previstas e gastas para cada categoria
de atividade;
8) Selecione a(s) categoria(s) que representa(m) a maior quantidade
de horas em todos os projetos da base de dados. Deve-se
apresentar também o total de horas da(s) categoria(s).
9) Selecione até cinco categorias que mais consumiram horas em
todos os projetos da base de dados. Deve-se apresentar também o
total de horas da(s) categoria(s).

13 13

Você também pode gostar