Query annidate: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1:
Le '''query annidate''', in [[informatica]], ma soprattuttonell'ambito neidei [[linguaggio di interrogazione|linguaggi di interrogazione]], rappresentano uno strumento sintattico molto importante per effettuare interrogazioni complesse sui [[database]].

L'interrogazione di un [[database]], è una delle operazioni che viene effettuata con maggiore frequenza. '''Un'interrogazione nidificata''' (o subquery), è una [[query]] che sta all'interno di un'altra interrogazione. La [[query]] interna, cioè la '''subquery''', passa i risultati alla [[query]] esterna che li verifica nella condizione che segue la clausola '''Where'''. Esistono vari tipi di '''subquery''', ma principalmente possiamosi suddividerlepossono suddividere in '''subquery''' che restituiscono un solo valore, e '''subquery''' che restituiscono un insieme di valori.
 
==Descrizione==
 
Esempio di una '''subquery''' che restituisce un solo valore:
Riga 23 ⟶ 27:
La [[query]] restituisce tutti gli ''Studenti'' che non hanno mai sostenuto un esame,'''la subquery''' invece ricerca tutte le matricole degli '''Studenti''' che hanno sostenuto almeno un esame. La clausola '''Distinct''' permette di eliminare la ripetizione delle matricole degli ''Studenti'' che hanno sostenuto più di un esame.
 
=== Gli operatori aggregati ===
'''Gli operatori aggregati''' (o funzioni di aggregazione), sono di fondamentale importanza per effettuare '''subquery''' complesse. Questi operatori si caratterizzano per il fatto di restituire un valore in corrispondenza di un gruppo di valori o dei valori che formano una colonna di una tabella contenuta in un [[database]]. Nella maggior parte dei [[Query language]], tra cui [[SQL]], i più importanti sono:
 
# '''COUNT()''' per contare i record;
Riga 32 ⟶ 36:
# '''MIN()''' per ottenere il valore minimo dell'attributo numerico prescelto.
 
=== Subquery con tabelle derivate ===
Una '''tabella derivata''', è una tabella che viene creata durante l'esecuzione della query esterna, quindi è un semplice result-set, cioè un insieme di tuple (o record) ottenute da una [[query]]. Essa rappresenta un tipo speciale di subquery, posizionata nella clausola '''From''' della [[query]] ed è referenziata tramite un alias.
 
Riga 46 ⟶ 50:
Questa [[query]], tramite la '''subquery''' nella clausola '''From''' permette di estrapolare dalla tabella ''Lavoratori'' il salario più alto della somma dei salari tra tutti i settori.
 
=== Query a campi incrociati ===
Le '''query a campi incrociati''' permettono di calcolare una somma, una media, un conteggio o altri tipi di operazioni di aggregazione su alcuni attributi. Occorre specificare che questo tipo di interrogazione non è presente in [[MySQL]], ma è presente invece nel linguaggio [[SQL]] per Access. Le [[query]] a campi incrociati permettono di raggruppare le tuple in base a due campi: il primo rappresenterà le colonne delle tuple risultato, mentre il secondo rappresenterà le righe.
 
Riga 62 ⟶ 66:
 
== Voci correlate ==
* [[Query]]
* [[Query language]]
* [[Database]]
* [[Query]]
* [[MySQL]]
* [[SQL]]
* [[MySQL]]
 
== Collegamenti esterni ==