Pesquisar este blog

Livros Recomendados

terça-feira, 3 de novembro de 2020

URI (BEECROWD) - 2605 - Representantes Executivos - SQL - PostgreSQL

Seguimos com as soluções para os exercícios de SQL!

Antes de resolver qualquer problema de SQL do URI/BEECROWD, recomendamos seguir os seguintes passos:

  1. Ler todo enunciado do problema.
  2. Ler os tópicos do fórum em caso de dúvidas
  3. Preparar o esquema, conforme fornecido no problema. Obs.: muitas vezes o pessoal coloca o código de criação do esquema no fórum, então é só copiar!

Plataforma: URI (BEECROWD)

Problema2605

Solução:

Resolvi quebrar essa solução em quatro linhas só por uma questão de legibilidade. Como já comentei em outras postagens, quem preferir pode fazer tudo na mesma linha.

Esse exercício exigia o uso de duas tabelas, products e providers. Era necessário obter os nomes de todos os produtos e fornecedores com código da categoria igual a 6. OK, isso parece fácil, basta criarmos uma condição na cláusula WHERE para que a categoria seja igual a 6. No entanto, é necessário realizar a referência correta entre o produto e o provedor, ou seja, não podemos relacionar o produto a qualquer provedor, mas sim ao provedor dele. Isso é feito acrescentando mais uma condição na cláusula WHERE, sendo necessário usar o operador lógico AND. Dessa forma, duas condições precisam ser satisfeitas:

  • A categoria do produto precisa ser a 6;
  • O id do provedor do produto (tabela products) precisa bater com um id de provedor (tabela providers).
Para quem estiver começando no aprendizado de SQL e encontrar dificuldades no entendimento deste exercício, sugiro revisar a parte de Modelo Entidade-Relacionamento, pois é na etapa de projeto que começamos a ver as cardinalidades. Depois disso, uma sugestão é estudar o Modelo Relacional, pois ele trabalha conceitos importantes como chave e aspectos de integridade. Nesse exercício em específico é fundamental compreender os conceitos de chave primária e chave estrangeira.

Observação: um passo adicional que eu sugiro e que ajuda muito a entender as consultas em SQL é estudar álgebra relacional.

SELECT products.name, providers.name
FROM products, providers
WHERE products.id_categories = 6
AND products.id_providers = providers.id;
 
Solução compreendida? Espero que sim! Até a próxima!

Nenhum comentário:

Postar um comentário

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas