Exercício com consultas em SQL.
1. Mostrar o dobro da soma das idades dos jogadores que jogam no time ‘Univali’ ou no time ‘Computação’. Chame o valor retornado de ‘valor’.
R: SELECT idade * 2 AS valor FROM jogadores WHERE idtime IN (SELECT idtime FROM time WHERE nome = ‘Univali’ OR nome = ‘Computação’);
2. Mostrar o nome dos jogadores que jogam no time ‘Univali’ ou que jogam em times da cidade de ‘Navegantes’.
R: SELECT nome FROM jogadores WHERE idtime IN (SELECT idtime FROM time WHERE cidade = (SELECT idcidade FROM cidades WHERE nome = ‘Navegantes’) OR nome = ‘Univali’);
– SELECT nome FROM jogadores WHERE idtime IN (SELECT idtime FROM time WHERE cidade = (SELECT idcidade FROM cidades WHERE nome = ‘Navegantes’) OR idtime = (SELECT idtime FROM time WHERE nome = ‘Univali’);
3. Listar os times de ‘Santa Catarina’ e que possuem jogadores com idade de 18 anos.
R: SELECT * FROM time WHERE idtime IN (SELECT idtime FROM jogadores WHERE idade >= 18) AND cidade IN (SELECT idcidade FROM cidades WHERE idestado = (SELECT idestado FROM estados WHERE nome = ‘Santa Catarina’));
4. Listar, em ordem alfabética, os jogadores com mais de 30 anos e que jogam em times do estado do ‘Paraná’.
R: SELECT * FROM time WHERE idtime IN (SELECT idtime FROM jogadores WHERE idade >= 30) AND cidade IN (SELECT idcidade FROM cidades WHERE idestado = (SELECT idestado FROM estados WHERE nome = ‘Paraná’)) ORDER BY nome;
5. Mostrar o número de jogos realizados esse ano com times da cidade de ‘Itajaí’.
R: SELECT COUNT(*) FROM jogos WHERE (idtime1 IN (SELECT idtime FROM time WHERE cidade = (SELECT idcidade FROM cidades WHERE nome = ‘Itajaí’)) OR idtime2 IN (SELECT idtime FROM time WHERE cidade = (SELECT idcidade FROM cidades WHERE nome = ‘Itajaí’))) AND EXTRACT (year FROM data_2) = EXTRACT (year FROM now());
6. Listar ordenado pela idade, do mais velho para o mais novo, o nome e idade dos jogadores que atuam em times que possuem a letra ‘A’ no nome (tanto a letra A maiúscula quanto minúscula).
R: SELECT nome, idade FROM jogadores WHERE idtime IN (SELECT idtime FROM time WHERE UPPER(nome) LIKE ‘%A%’) ORDER BY idade DESC;
7. Qual o(s) nome(s) do time com o(s) jogador(es) mais velho(s).
R: SELECT nome FROM time WHERE idtime IN (SELECT idtime FROM jogadores WHERE idade = (SELECT max(idade) FROM jogadores));