Concetti Chiave
- Le interrogazioni SQL annidate permettono di inserire più comandi Select uno dentro l'altro per ricerche più complesse.
- Una sotto interrogazione può restituire un singolo valore o un insieme di valori, utilizzati per verificare condizioni in una Select esterna.
- L'esempio pratico mostra come visualizzare gli studenti con il voto massimo in Matematica utilizzando una sotto interrogazione.
- L'esecuzione dell'interrogazione avviene in fasi, iniziando con la sotto interrogazione che determina il voto massimo per la materia.
- Successivamente, l'interrogazione principale e l'equin-join tra le tabelle consentono di ottenere l'elenco degli studenti 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 pratico di interrogazione SQL
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”);
Simulazione dell'esecuzione dell'interrogazione
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.
Domande da interrogazione
- Come si possono utilizzare le interrogazioni SQL annidate per migliorare le ricerche nei database?
- Qual è un esempio pratico di interrogazione SQL annidata?
- Quali sono i passaggi per eseguire un'interrogazione SQL annidata?
Le interrogazioni SQL annidate permettono di strutturare più comandi Select uno dentro l'altro, consentendo ricerche più complesse. Una sotto interrogazione può restituire un valore o un insieme di valori, che viene poi utilizzato nella Select esterna per verificare condizioni specifiche.
Un esempio pratico è la query che visualizza i nominativi degli studenti che hanno ottenuto il voto massimo in "Matematica". Questa interrogazione utilizza una sotto interrogazione per determinare il voto massimo e lo confronta con i voti degli studenti nella materia specificata.
L'esecuzione di un'interrogazione SQL annidata avviene in più fasi: prima si esegue la sotto interrogazione per ottenere il voto massimo, poi si filtra la tabella Valutazioni per la materia e il voto, si effettua un equi-join con la tabella Studenti e infine si visualizzano i nominativi desiderati.