Esercizio per Venerdì 14/10/2005
Si consideri lo schema Studenti(Matricola,Nome,Cognome,AnnoNascita),
Esami(Numero,Matricola,Materia,Data,Voto),
Commissioni(Numero,Docente) dove Esami.Numero è chiave
primaria per Esami, ed ogni esame è sostenuto di fronte ad una
commissione formata da almeno tre docenti (inviduati dal cognome).
Per ciascuna delle seguenti interrogazioni, scrivete un'interrogazione
SQL che la calcola.
-
Nome, cognome e matricola degli studenti che hanno superato l'esame di 'BD'.
-
Matricola degli studenti che non hanno superato esami (usare la differenza).
-
Nome, cognome e matricola degli studenti che non hanno superato esami
(usare NOT EXISTS).
-
Per gli studenti che hanno preso almeno un 30, trovare nome, cognome,
voto medio (usare GROUP BY e max(voto)).
-
Per ogni studente che abbia superato almeno un esame con 'Ghelli' in
commissione, trovare nome e cognome dello studente.
-
Molto difficile: per ogni studente che abbia superato solo esami
con 'Ghelli' in
commissione, trovare nome e cognome dello studente (suggerimento:
equivale a dire: per ogni studente che non abbia superato nessun esame
in cui non ci fosse 'Ghelli' in
commissione, trovare nome e cognome dello studente)