Query annidate: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
|||
(39 versioni intermedie di 20 utenti non mostrate) | |||
Riga 1:
{{U|Query|informatica|novembre 2022|commento=sottotipologia trattabile nella voce principale}}
{{w|informatica|marzo 2010}}▼
Le '''query annidate''', in [[informatica]],
In generale ==Descrizione==
Esempio di una '''subquery''' che restituisce un solo valore:
<
select *
from Dipendenti
where età>(Select AVG(età)
from Dipendenti)
</syntaxhighlight>
La [[query]] restituisce tutti i ''Dipendenti'' la cui età supera l'età media di tutti i
Esempio di una '''subquery''' che restituisce un insieme di valori:
<
select *
from Studenti
where matricola Not in (Select DISTINCT rif_matricola from Esami)
</syntaxhighlight>
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)
=== Subquery con tabelle derivate ===
Una '''tabella derivata'''
Esempio di una '''subquery''' con tabelle derivate:
<
select MAX(tot_salario)
from (select SUM(salario) as tot_salario
from Lavoratori
group by settore)
</syntaxhighlight>
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.▼
▲=== 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.
Esempio di una [[query]] a campi incrociati:
<
Transform COUNT(*)
select classe
from Studenti
group by classe
</syntaxhighlight>
Questa [[query]] a campi incrociati permette di contare per ogni classe il numero di ''studenti'' maschi e il numero di ''studentesse''.▼
▲Questa [[query]] a campi incrociati permette di contare per ogni classe il numero di ''studenti''
== Voci correlate ==
* [[Database]]▼
* [[Query]]
* [[
▲* [[Database]]
* [[SQL]]
* [[MySQL]]
== Collegamenti esterni ==
*{{cita web | 1 = http://database.html.it/guide/leggi/40/guida-linguaggio-sql/ | 2 = Guida al linguaggio SQL | accesso = 17 marzo 2010 | dataarchivio = 11 luglio 2010 | urlarchivio = https://web.archive.org/web/20100711111837/http://database.html.it/guide/leggi/40/guida-linguaggio-sql/ | urlmorto = sì }}
*{{cita web|https://www.w3schools.com/sql/sql_intro.asp|SQL Tutorial}}
[[Categoria:
|