Considero la seguente tabella relazionale

Untitled

Esercizio 1

<aside> 💡 Trovare la matricola degli studenti che hanno preso almeno un 30 e un 30 e lode, supponendo che il voto 30 e lode sia memorizzato come 33.

</aside>

select matricolastudente
from esame 
where voto = 30 

intersect
select matricolastudente
from esame
where voto = 33

Esercizio 2

<aside> 💡 Elencare i cognomi e i nomi dei professori e degli studenti presenti nella base di dati.

</aside>

select cognome, nome
from studente

union
select cognome, nome 
from insegnante

Esercizio 3

<aside> 💡 Trovare i cognomi dei professori che non sono anche cognomi di studenti di Milano

</aside>

select cognome
from insegnante

except
select cognome
from studente
where città='Milano'

Query nidificate

Esercizio 4

<aside> 💡 Trovare i codici e i nomi dei corsi con il massimo numero di crediti

</aside>

select codice, nome
from corso 
where numerocrediti = (select max(numerocrediti) from corso)

oppure

select codice, nome
from corso
where numerocrediti >= ALL (select numerocrediti from corso)

Esercizio 5

<aside> 💡 Trovare i codici e i nomi di tutti i corsi ad eccezione di quelli con il minor numero di crediti.

</aside>

select codice, nome
from corso 
where numerocrediti != (select min(numerocrediti) from corso)

oppure 

select codice, nome
from corso
where numerocrediti> ANY (select numerocrediti from corso)

Esercizio 6