Linguaggio SQL: Le query annidate e complesse

Linguaggio SQL: Le query annidate e complesse

Come abbiamo gia detto nell’articolo precedente, il risultato di una query è una tabella che rispetta le specifiche inserite dall’utente nelle varie clausole accessorie. Tale tabella non ha nessuna differenza con una qualsiasi altra tabella nel database, se non che per il contenuto. Per questo nulla vieta di utilizzare una query all’interno di un’altra query.

Linguaggio SQL - Le query annidate e complesse

Le query utilizzate come valore all’interno di clausole di un’altra query vengono chiamate query annidate (o nidificate). Non devono essere confuse con le query legate dagli operatori insiemistici, poichè quelle rappresentano due query diverse; in questo caso, si ha che il codice di una query e inserito all’interno di una clausola di un’altra query.

La query annidata puo essere inserita in una clausola FROM, e quindi valutata come tabella, oppure in una clausola WHERE, dove ne vengono utilizzati gli attributi per creare delle condizioni. In ogni caso, all’utente finale verra presentato il risultato globale della query, ma non quello della query annidata, in quando essa viene processata come un parametro operativo.
Questo tipo di costrutto, sebbene piuttosto complesso, permette delle operazioni piu complesse eliminandone i passaggi intermedi. Richiedono tuttavia particolare attenzione in fase di costruzione.

Un esempio di struttura di una query annidata posta all’interno della clausola FROM è mostrato nella figura precedente, mentre per una query annidata inserita tra le condizioni della clausola WHERE si ha il costrutto di figura seguente. In questi due esempi si nota una delle differenze fondamentali tra le query annidate a seconda della clausola in cui sono inserite: nel primo esempio la query annidata viene presa e trattata come una tabella, nel secondo caso, essendo all’interno di un blocco condizionale, la sua funzione sara quella di restituire dei valori confrontabili con altri per verificare la condizione richiesta.

Esempio di query annidata in clausola FROM
Esempio di query annidata in clausola FROM

Esempio di query Annidata in clausola WHERE
Esempio di query Annidata in clausola WHERE

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *