MC536 - Série 3 de exercícios

Prazo para entrega:18 out 22

  1. Fornecimento de materiais:
    Suponha que as tabelas F e M foram destruídas. Re-escreva e teste a "consulta clássica" usando apenas a tabela FM

  2. Reescreva a "consulta clássica" para obter os nomes dos jogadores que ganharam todos os torneios de Grand Slam (para isto utilize a tabela LT que só possui os torneios de Grand Slam em vez da tabela lista_torneios ou utilize a sub-expressão where numt <= 4 )

  3. Considere a tabela FMP(f,m, preco) de fornecimentos de materiais, onde para cada par f,m é incluído o preço do material fornecido. Escreva e teste uma consulta SQL com o seguinte objetivo: "para cada material m obtenha o fornecedor f que fornece m com o menor preço dentre todos os fornecedores que fornecem m".
    Sugestão: use o modificador all numa subconsulta correlacionada. Verifique a correção de sua solução executando:
    select f, m, preco
    from FMP
    order by m, preco, f
    

  4. Considere a solução da consulta q37: "obter os nomes dos jogadores que não pertencem ao grupo dos mais velhos". Suponha que o operador any esteja "quebrado". Re-escreva a consulta usando o operador all.
    É possível resolvê-la sem usar o operador not in?

  5. Opcional: considere agora a consulta q36: "obter os nomes dos jogadores mais velhos que todos os outros". Suponha que o operador all esteja "quebrado". Re-escreva a consulta usando o operador any.

  6. Escreva e teste um comando SQL para a consulta:
    "Quais (os números dos) jogadores que venceram exatamente um torneio de Grand Slam?"
    Sugestão: por ser a tabela de torneios mais complexa do que a tabela C(m1, m2), a solução do problema análogo: "obter uma lista dos materiais que contêm exatamente um material" (das série 2 de exercícios), precisa ser alterada.
    Dica: os jogadores 16, 910 e 1228 não deveriam aparecer na sua solução (confira!).