Sia dato il seguente database relazionale:

calciatori (cf,nome,cognome,squadra,data_nascita,ruolo)
squadre(nome,citta,presidente)
esami(cf,corso,voto,lode)

su cui sono definiti i seguenti vincoli di integrità referenziale:
calciatori.squadra -> squadre.nome
calciatori.cf -> esami.cf

Eseguire le seguenti query SQL:

  1. Elenco dei calciatori del ChievoVerona

 

SELECT nome, cognome, data_nascita, ruolo

FROM calciatori

WHERE squadra="ChievoVerona"

ORDER BY cognome;

 

  1. Elenco dei calciatori di una squadra data in input

 

SELECT nome, cognome, data_nascita, ruolo

FROM calciatori

WHERE squadra=[Inserisci la squadra]

ORDER BY cognome;

 

  1. Nome, cognome e data di nascita degli under 21 (nati dopo il 1° gennaio 1986)

 

SELECT nome, cognome, data_nascita

FROM calciatori

WHERE data_nascita>#1/1/1986#

 

  1. Elenco dei calciatori che giocano a Milano

 

SELECT calciatori.nome, cognome, squadra

FROM calciatori, squadre

WHERE calciatori.squadra=squadre.nome AND

  citta="Milano";

 

  1. Indicare, per ciascuna squadra, il numero di calciatori in elenco

 

SELECT squadra, COUNT(*) AS [numero calciatori in elenco]

FROM calciatori

GROUP BY squadra;

 

  1. Elenco dei calciatori della Juventus con almeno un esame:

 

SELECT nome, cognome

FROM calciatori AS C, esami AS E

WHERE C.cf=E.cf And squadra="Juventus";

 

  1. Elenco dei calciatori di Milano con almeno un esame:

 

SELECT DISTINCT C.nome, cognome

FROM calciatori AS C, esami AS E, squadre AS S

WHERE C.cf=E.cf AND C.squadra=S.nome AND S.citta="Milano";

 

  1. Elenco dei calciatori con media degli esami superiore a 25

 

SELECT nome, cognome, AVG(voto) AS [Voto medio esami sostenuti] AS [Voto medio esami sostenuti]

FROM calciatori C, esami E

WHERE C.cf=E.cf

GROUP BY C.cf,nome, cognome

HAVING AVG(voto)>25;