# SESSION FOUR | BANCO DE DADOS > **Aluna:** Patricia Oliveira Paulino > **Número:** 37 > **Turma:** Info D ## Parte 1 > Select script > Desafio 1 ```sql= - Filtrando por: nome da categoria. - Ordenando por: nome da categoria e nome do produto. select nm_categoria, nm_produto, vl_preco from tb_produto p join tb_categoria c on p.id_categoria = c.id_categoria where c.nm_categoria = "Higiene e cuidados" order by nm_categoria, nm_produto; ``` > Desafio 2 ```sql= - Filtrando por: produtos que possuem o estoque disponível menor que o estoque mínimo. - Ordenando por: nome da categoria e nome do produto. select nm_categoria, nm_produto, vl_preco qtd_minima, qtd_disponivel from tb_produto p join tb_categoria c on p.id_categoria = c.id_categoria join tb_estoque e on e.id_produto = p.id_produto where e.qtd_disponivel < e.qtd_minima order by nm_categoria, nm_produto; ``` > Desafio 3 ```sql= - Filtrando por: nome categoria e nome do produto de forma parcial. - Ordenando por: preço de forma decrescente. select nm_categoria, nm_produto, vl_preco, qtd_minima, qtd_disponivel from tb_produto p join tb_categoria c on p.id_categoria = c.id_categoria join tb_estoque e on e.id_produto = p.id_produto where c.nm_categoria like '%[categoria]%' and p.nm_produto like '%[produto]%' order by p.vl_preco desc; ``` > Desafio 4 ```sql= - Filtrando por: nome cliente e cidade. - Ordenando por: cidade. select nm_cliente, ds_cpf, ds_cep, ds_endereco, nm_endereco, ds_cidade from tb_cliente c join tb_endereco e on c.id_endereco = e.id_endereco where nm_cliente like 'a%' and ds_endereco like '%%' order by ds_cidade; ``` > Desafio 5 ```sql= -- Filtrando por: entre um período de início e fim da data da venda. - Ordenando por: id da venda. select id_venda, dt_venda, nm_cliente, ds_nota_fiscal, tp_forma_pagamento, ds_endereco, nm_endereco from tb_venda v join tb_cliente c on v.id_cliente = c.id_cliente join tb_endereco e on e.id_endereco = v.id_endereco_entrega where v.dt_venda between '2021-05-01' and '2021-05-20' and ds_endereco like '%%' order by v.id_venda; ``` > Desafio 6 ```sql= - Filtrando por: nome cliente ou nota fiscal. - Ordenando por: id da venda. select id_venda, dt_venda, nm_cliente, ds_nota_fiscal, tp_forma_pagamento, ds_endereco, nm_endereco from tb_venda v join tb_cliente c on v.id_cliente = c.id_cliente join tb_endereco e on e.id_endereco = v.id_endereco_entrega where v.id_venda = 0 and v.ds_nota_fiscal = '2009' order by v.id_venda; ``` > Desafio 7 ```sql= - Filtrando por: data de venda, endereco. - Ordenando por: id da venda. select id_venda, dt_venda, nm_cliente, ds_nota_fiscal, tp_forma_pagamento, ds_endereco, nm_endereco from tb_venda v join tb_cliente c on v.id_cliente = c.id_cliente join tb_endereco e on e.id_endereco = v.id_endereco_entrega where v.id_venda = '2021-05-05' and e.ds_endereco like '%%' order by v.id_venda; ``` > Desafio 8 ```sql= - Filtrando por: id da venda ou nota fiscal. - Ordenando por: id da venda. select v.id_venda, v.dt_venda, c.nm_cliente, v.ds_nota_fiscal, v.tp_forma_pagamento, e.ds_endereco, e.nm_endereco, ca.nm_categoria, p.nm_produto, p.vl_preco, es.qtd_minima, es.qtd_disponivel from tb_venda v join tb_cliente c on v.id_cliente = c.id_cliente join tb_endereco e on e.id_endereco = v.id_endereco_entrega join tb_venda_item vi on vi.id_venda = v.id_venda join tb_produto p on p.id_produto = vi.id_produto join tb_categoria ca on ca.id_categoria = p.id_produto join tb_estoque es on es.id_produto = p.id_produto where v.id_venda = 1 order by v.id_venda; ``` > Desafio 9 ```sql= - Filtrando por: data da venda. - Ordenando por: id da venda. select v.id_venda, v.dt_venda, c.nm_cliente, v.ds_nota_fiscal, v.tp_forma_pagamento, e.ds_endereco, e.nm_endereco, ca.nm_categoria, p.nm_produto, p.vl_preco, es.qtd_minima, es.qtd_disponivel from tb_venda v join tb_cliente c on v.id_cliente = c.id_cliente join tb_endereco e on e.id_endereco = v.id_endereco_entrega join tb_venda_item vi on vi.id_venda = v.id_venda join tb_produto p on p.id_produto = vi.id_produto join tb_categoria ca on ca.id_categoria = p.id_produto join tb_estoque es on es.id_produto = p.id_produto where v.dt_venda = '2020-09-08' order by v.id_venda; ``` > Desafio 10 ```sql= - Filtrando por: data da venda. - Ordenando por: nome do produto. select nm_categoria, nm_produto, vl_preco from tb_produto p join tb_categoria c on p.id_categoria = c.id_categoria join tb_venda_item vi on vi.id_produto = p.id_ptoduto join tb_venda v on v.id_venda = vi.id_venda_item where v.dt_venda = '2020-05-08' order by p.vl_preco desc; ``` ## Parte 2 > Select script > Desafio 11 ```sql= - Filtrando pelos produtos que nunca foram vendidos. select nm_categoria, nm_produto, vl_preco from tb_produto p join tb_categoria c on p.id_categoria = c.id_categoria where p.id_produto not in (select id_produto from tb_venda_item); ``` > Desafio 12 ```sql= - Filtrando pelas categorias que não possuem produtos. select c.nm_categoria, c.nm_categoria from tb_produto p right join tb_categoria c on p.id_categoria = c.id_categoria where p.id_produto is null; ``` > Desafio 13 ```sql= - Filtrando pelos clientes que não possuem endereço. select id_cliente, nm_cliente from tb_cliente c left join tb_endereco e on c.id_endereco = e.id_endereco where c.id_endereco is null; ``` > Desafio 14 ```sql= - Filtrando pelas vendas que não possuem clientes. select id_venda, dt_venda, nm_cliente, ds_nota_fiscal, tp_forma_pagamento, ds_endereco, nm_endereco from tb_venda v left join tb_cliente c on v.id_cliente = c.id_cliente join tb_endereco e on e.id_endereco = v.id_endereco_entrega where v.id_cliente is null order by v.id_venda; ``` ## Parte 3 > Select script > Desafio 15 ```sql= - Agrupando por id_venda. - Selecionando a contagem de items por venda. select v.id_venda count(vi.id_venda_item) qtd from tb_venda v join tb_venda_item vi on v.id_venda = vi.id_venda group by v.id_venda; ``` > Desafio 16 ```sql= - Agrupando por id_venda. - Selecionando a contagem de items da venda e somando o preco dos itens da venda. select v.id_venda count(vi.id_venda_item) qtd sum(p.vl_preco) from tb_venda v join tb_venda_item vi on v.id_venda = vi.id_venda join tb_produto p on p.id_produto = vi.id_produto where v.dt_venda between '2020-05-01' and '2021-05-01' group by v.id_venda; ``` > Desafio 17 ```sql= - Agrupando por id da venda, data da venda e nome do cliente. - Selecionando a contagem de items da venda e somando o preco dos itens da venda. select v.id_venda, c.nm_cliente, v.dt_venda, count(vi.id_venda_item) qtd sum(p.vl_preco) from tb_venda v join tb_venda_item vi on v.id_venda = vi.id_venda join tb_produto p on p.id_produto = vi.id_produto join tb_cliente c on c.id_cliente = v.id_cliente where v.dt_venda between '2020-05-01' and '2021-05-01' group by v.id_venda, c.nm_cliente, v.dt_venda; ``` > Desafio 18 ```sql= - Agrupando por id da venda, data da venda e nome do cliente. - Selecionando a contagem de items da venda e somando o preco dos itens da venda. - Tendo o valor total da vendo maior que R$1000,00. select v.id_venda, c.nm_cliente, v.dt_venda, count(vi.id_venda_item) qtd sum(p.vl_preco) FROM tb_venda v join tb_venda_item vi on v.id_venda = vi.id_venda join tb_produto p on p.id_produto = vi.id_produto join tb_cliente c on c.id_cliente = v.id_cliente where v.dt_venda between '2020-05-01' and '2021-05-01' group by v.id_venda, c.nm_cliente, v.dt_venda, having sum(p.vl_preco) > 50; ``` > Desafio 19 ```sql= - Consultando as cidades que mais tiveram vendas. - Ordenando pela quantidade de vezes vendida de forma decrescente. select e.ds_cidade count(vi.id_venda_item) count(vi.id_venda_item) qtd sum(p.vl_preco) from tb_venda v join tb_venda_item vi on v.id_venda = vi.id_venda join tb_endereco e on e.id_endereco_entrega = v.id_endereco_entrega group by e.ds_cidade order by count BY(vi.id_venda_item) desc; ``` > Desafio 20 ```sql= - Consultando os produtos mais vendidos. - Ordenando pela quantidade de vezes vendida de forma decrescente. select p.id_produto, p.nm_produto, c.nm_categoria, p.vl_preco, count(vi.id_venda_item) sum(p.vl_preco) from tb_venda v join tb_produto p on p.id_produto = vi.id_produto join tb_categoria c on c.id_categoria = p.id_categoria group by p.id_produto, p.nm_produto, c.nm_categoria, p.vl_preco, order by count (vi.id_venda_item) desc; ``` ## Desafio Monster > Select script > Desafio Monster ```sql= - Consultando os top 5 clientes que mais compraram - Ordenando pela quantidade de vezes comprada de forma decrescente ```
{"metaMigratedAt":"2023-06-16T02:53:15.480Z","metaMigratedFrom":"Content","title":"SESSION FOUR | BANCO DE DADOS","breaks":true,"contributors":"[{\"id\":\"694aa08f-556c-44e2-bd76-36a3a1863269\",\"add\":9857,\"del\":0}]"}
Expand menu