Concetti Chiave
- Le interrogazioni nidificate permettono di scrivere query SQL complesse utilizzando sotto interrogazioni all'interno di altre query.
- Una sotto interrogazione può restituire un singolo valore o un insieme di valori, influenzando la query principale.
- Un esempio pratico mostra come ottenere i nominativi degli studenti con il voto massimo in "Matematica".
- Il processo di esecuzione include una sotto interrogazione per determinare il voto massimo e una query superiore per selezionare gli studenti corrispondenti.
- L'equin-join tra le tabelle Studenti e Valutazioni consente di visualizzare i nominativi desiderati.
Per potenziare ulteriormente l'uso del comando Select è possibile scrivere delle interrogazioni SQL annidate,cioè strutturare più Select una dentro l'altra in modo da effettuare ricerche molti più complesse sulla base di dati. Le interrogazioni nidificate prevedono quindi l'utilizzo di una sotto interrogazione all'interno di un'interrogazione più esterna,cioè di un comando Select all'interno del corpo di un altro comando Select. Una sotto interrogazione più restituire un solo valore o un insieme di valori,su questo risultato e poi verificata la condizione della Select a livello superiore.
Esempio prendendo in considerazione che il sotto interrogazione restituisca un solo valore.
Visualizzare i nominativi degli studenti che hanno conseguito in “Matematica” il voto massimo assegnato in “Matematica”;
Select Cognome,Nome
From Studenti, Valutazioni
Where Studenti.Matricola = Valutazioni. Matricola
And Materia = “Matematica”
And Voto = (Select Max (Voto)
From Valutazioni
Where Materia = “Matematica”);
Simuliamo passo per passo l'esecuzione dell'interrogazione partendo dalla sotto interrogazione:
1)E' immediatamente eseguita la sotto interrogazione che restituisce,dopo aver effettuato il taglio orizzontale che seleziona dalla tabella Valutazioni solo le righe corrispondenti alla materia “Matematica”, il voto massimo assegnato in quella materia.
2)A questo punto è eseguita l'interrogazione a livello superiore,che effettua il taglio orizzontale che seleziona dalla tabella Valutazioni solo le righe corrispondenti alla materia “Matematica “e a un voto uguale al valore restituito dalla sotto interrogazione precedente;
3)è effettuato l'equin-join tra le tabelle Studenti e la tabella ricavata al passo precedente;
4)le righe della nuova tabella vengono tagliate verticalmente,visualizzando l'elenco dei nominativi degli studenti desiderati.