# data[].attributes.body
Exercício views – base sakila

# data[].attributes.attachment_link.readable_text

Exercício views – base sakila 
 
Disciplina Bancos de Dados 2 – Sistemas de Informação EU Penedo 
 
// 1) Crie as seguintes views: 
a. Faça uma consulta que apresente id do cliente, primeiro nome, último 
nome, os filmes que ele locou e a data de locação; 
 
create view Exercício_A 
as SELECT C.cliente_id, C.primeiro_nome, C.ultimo_nome, F.titulo, 
A.data_de_aluguel  
FROM aluguel as A 
inner join cliente C 
ON A.cliente_id = C.cliente_id 
inner join inventario I 
ON A.inventario_id = I.inventario_id 
inner join filme F 
ON I.filme_id = F.filme_id; 
 
// b. Faça uma consulta que apresente id do ator, nome do ator e os filmes que 
ele participou; 
 
create view Exercício_B 
as SELECT A.ator_id, A.primeiro_nome, F.titulo 
FROM filme_ator as FA 
inner join filme as F 
ON FA.filme_id = F.filme_id 
inner join ator A 
on FA.ator_id = A.ator_id; 
 
// c. Faça uma consulta que apresente valor médio dos aluguéis nesta locadora; 
 
Valor médio do aluguel dos filmes.  
create view Exercício_C_valor_medio_aluguel_filme 
as SELECT avg(F.preco_da_locacao) as VALOR_MEDIO 
FROM filme as F; 
 
Valor médio dos alugueis já realizados 
create view Exercício_C_valor_medio_aluguel_ja_realizado 
as SELECT avg(P.valor) as VALOR_MEDIO 
FROM pagamento as P; 

 
 
// d. Faça uma consulta que apresente todas as categorias de filmes existentes 
na locadora; 
 
create view Exercício_D 
as select distinct C.nome as CATEGORIAS from filme_categoria as F 
inner join categoria as C  
on F.categoria_id = C.categoria_id; 
 
// 2) Crie as seguintes stored procedures: 
a. Atualiza a tabela pagamento, recebendo pagamento_id como parâmetro de 
entrada e atualizando o valor que foi pago; 
 
create procedure AT_pagamento (PAGAMENTO smallint ,novo_valor float(3,2)) 
update pagamento set valor = novo_valor  
where pagamento_id = PAGAMENTO; 
 
// b. Recupere todos os atores cadastrados no banco; 
 
create procedure Recupera_ator () 
select primeiro_nome from ator; 
 
// c. Calcule o valor gasto em aluguel por um determinado cliente. 
create procedure Valor_gasto (id smallint) 
select sum(valor) as TOTAL from pagamento 
where cliente_id = id;

# data[].attributes.body
EXERCÍCIO BANCO DE
DADOS II

# data[].attributes.attachment_link.readable_text
// 1) Escreva uma consulta utilizando JOIN para unir as tabelas Orders e 
Customers. 
 
select C.id, C.first_name, O.id, O.status_id from customers as C 
inner join orders as O 
on C.id = O.customer_id; 
 
// 2) Escreva uma consulta utilizando a cláusula JOIN correta para selecionar 
todos os registros da tabela pedido, considerando a coluna de correspondência 
das tabelas Orders e Customers. 
 
select * from orders as O 
inner join customers as C 
on O.customer_id = C.id; 
 
// 3) Escreva uma consulta utilizando a cláusula JOIN correta que retorne apenas 
nome e id de todos os clientes (costumers) que realização algum 
pedido(orders). 
 
select C.first_name, C.id from customers as C 
inner join orders as O 
on C.id = O.customer_id; 
 
// 4) Escreva uma consulta utilizando a cláusula JOIN correta que o id do pedido, 
nome e sobrenome dos funcionários (employees) que realizaram os pedidos na 
tabela orders. 
 
select O.id, E.first_name, E.last_name from orders as O 
inner join employees as E 
on O.employee_id = E.id; 
 
 
 
 
// JOIN – TRÊS TABELAS 
 
// 5) Escreva uma consulta utilizando a cláusula JOIN correta que retorne o nome 
e id de 
todos os clientes (costumers) e o nome do remetente (shippers) que realização 
algum pedido(orders). 
 
select C.first_name, C.id, S.first_name from orders as O 
inner join customers as C 
on O.customer_id = C.id  
inner join shippers as S 
on O.shipper_id = S.id; 
 
// INCREMENTANDO AS CONSULTAS 
• Atualize as consultas acima, ordenando-as em ordem crescente 
utilizando a cláusula order by; 
 
// 1º) 
select C.id, C.first_name, O.id, O.status_id from customers as C 
inner join orders as O 
on C.id = O.customer_id 
order by C.id asc; 
 
// 2º) 
select * from orders as O 
inner join customers as C 
on O.customer_id = C.id 
order by O.id asc; 
 
// 3º) 
select C.first_name, C.id from customers as C 
inner join orders as O 
on C.id = O.customer_id 
order by C.first_name asc; 
 
// 4º) 
select O.id, E.first_name, E.last_name from orders as O 
inner join employees as E 
on O.employee_id = E.id 
order by O.id asc; 
 
// 5º) 
select C.first_name, C.id, S.first_name from orders as O 
inner join customers as C 
on O.customer_id = C.id  
inner join shippers as S 
on O.shipper_id = S.id 
order by C.first_name asc; 
 
// • Atualize as consultas acima, limitando a 5 linhas o seu resultado – utilize 
a cláusula limit; 
 
// # 1º) 
select C.id, C.first_name, O.id, O.status_id from customers as C 
inner join orders as O 
on C.id = O.customer_id 
limit 5 ; 
 
// #2º) 
select * from orders as O 
inner join customers as C 
on O.customer_id = C.id 
limit 5 ; 
 
// #3º) 
select C.first_name, C.id from customers as C 
inner join orders as O 
on C.id = O.customer_id 
limit 5 ; 
 
// #4º) 
select O.id, E.first_name, E.last_name from orders as O 
inner join employees as E 
on O.employee_id = E.id 
limit 5 ; 
 
// #5º) 
select C.first_name, C.id, S.first_name from orders as O 
inner join customers as C 
on O.customer_id = C.id  
inner join shippers as S 
on O.shipper_id = S.id 
limit 5 ; 
 
 
// • Atualize a consulta feita para o exercício 3, contando quantos clientes 
realizaram algum pedido – utilize a cláusula count; 
 
select count(distinct C.id) from customers as C 
inner join orders as O 
on C.id = O.customer_id; 


# data[].attributes.headline
DIFERENÇA ENTRE STORED PROCEDURES, FUNCTIONS E VIEWS

# data[].attributes.subject
DIFERENÇA ENTRE STORED PROCEDURES, FUNCTIONS E VIEWS

# data[].attributes.body
Atualizando informações...