5° Anno TEORIA 4. Introduzione al linguaggio SQL | Página 50

16. Il linguaggio SQL Vers. 11.0 – Gennaio 2026
QUERY ANNIDATE o SUBQUERY
Per rispondere ad interrogazioni o query complesse è possibile strutturare più SELECT. Questo permette di costruire una interrogazione al cui interno sono presenti altre interrogazioni dette sottointerrogazioni o subquery.
Una sottoquery può essere composta a sua volta da altre query. Si viene a creare così una struttura di query annidate.
Per eseguire sottoquery annidate si deve eseguire prima l’ interrogazione più interna e poi eseguire quella più esterna fino ad arrivare alla query principale.
In una interrogazione che ne richiama un’ altra al suo interno possiamo distinguere:
• la query principale o query esterna: quella individuata dalla prima parola chiave SELECT incontrata;
• la query secondaria o sottoquery o subquery o query interna: quella individuata dalla seconda parola chiave SELECT incontrata( delimitata tra parentesi tonde).
La sottoquery genera una tabella che si chiama tabella derivata che può essere composta da:
a) un solo valore( tabella formata da una sola riga e da una sola colonna) ed in questo caso si parla di tabella o query scalare;
b) una sola riga( ma più colonne); in generale, più valori c) più righe e più colonne.
Una tabella scalare si può utilizzare tutte le volte in cui è richiesto l’ utilizzo di un singolo valore nella query. E’ spesso conveniente utilizzare nelle sottoquery la clausola AS per assegnare un nome alla tabella ottenuta
SOTTOINTERROGAZIONI che producono un solo valore
Quando si è sicuri che una sottoquery produce un solo valore come risultato è possibile utilizzare tale sottointerrogazione nelle espressioni della query principale.
SELECT < Lista Attributi > FROM < ListaTabelle > WHERE < Attributo > < OperatoreDiConfronto >(< SubQuery >);
dove < OperatoreDiConfronto > è uno tra <, >, ≤, ≥, =, <>. Esempio: consideriamo le seguenti due relazioni Regista( CodRegista, Cognome, Nome, Compenso)
Film( CodFilm, Titolo, Budget, CodRegia) con l’ attributo " CodRegia " che è chiave esterna( FK) sull’ attributo " CodRegista " della relazione " Regista "
Supponiamo di volere effettuare la seguente interrogazione Query: Mostrare il cognome ed il nome del regista del film“ Via col vento”
SELECT Regista. Cognome, Regista. Nome FROM Regista, Film WHERE( Regista. CodRegista = Film. CodRegia) AND( Film. Titolo =“ Via con vento”);
analogo alla SOTTOINTERROGAZIONE o SUBQUERY
SELECT Regista. Cognome, Regista. Nome FROM Regista WHERE CodRegista =( SELECT CodRegia FROM Film WHERE Titolo = " Via col vento ");
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 50