logo

SQL | Sottoquery nella clausola From

Le sottoquery SQL sono funzionalità preziose che ci consentono di incorporare una query all'interno di un'altra, aggiungendo più importanza al recupero e alla manipolazione dei dati in modo complicato. Viene utilizzato per impostare tabelle temporanee o risultati intermedi che verranno successivamente utilizzati dalla query esterna.

Sottoquery nella clausola FROM

La clausola FROM può essere utilizzata per specificare un'espressione di sottoquery in SQL. La relazione prodotta dalla sottoquery viene quindi utilizzata come una nuova relazione sulla quale viene applicata la query esterna per ulteriori operazioni. Sottoquery inFROMLa clausola viene utilizzata quando è necessario creare un set di dati temporaneo che non esiste in nessuna tabella fisica. Ciò può essere estremamente utile quando si lavora con set di dati complessi.

aggiunta di stringhe Java

Le variabili di correlazione delle tabelle a cui si fa riferimento nella clausola FROM della query esterna non possono essere utilizzate direttamente nelle sottoquery nella clausola FROM. Di seguito sono riportate due sintassi dell'utilizzo di Subquery nella clausola FROM utilizzata in diversi scenari.



1. Sottoquery semplice nel fileFROMClausola:

SELEZIONA colonna1 colonna2

FROM (SELECT colonna_x AS C1 colonna_y FROM tabella condizione WHERE) AS tabella_sottoquery

DOVE condizione_esterna;

Madhuri ha detto andiamo

2. Sottoquery inFROMClausola conJOIN:

SELEZIONA colonna1 colonna2

FROM (SELECT colonna_x AS C1 colonna_y FROM tabella WHERE PREDICATE_X) AS tabella2

UNISCI tabella1 SU tabella2.qualche_colonna = tabella1.qualche_colonna

DOVE PREDICARE;

lattice di dimensioni del testo

parametri:

  • Sottoquery : la query interna racchiusa tra parentesi. Recupera i dati che fungeranno da tabella temporanea.
  • Alias : alla sottoquery deve essere assegnato un alias (subquery_table) a cui fare riferimento nella query esterna.
  • Domanda esterna : La query esterna può quindi funzionare con questa tabella temporanea creata dalla sottoquery applicando filtri o eseguendo ulteriori operazioni.

Come funzionano le sottoquery nella clausola FROM

  • Valutazione della sottoquery : La sottoquery nella clausola from viene valutata per prima e poi i risultati della valutazione vengono archiviati in una nuova relazione temporanea. 
  • Domanda esterna : Dopo che la sottoquery viene eseguita e restituisce un set di dati, la query esterna viene valutata selezionando solo quelle tuple dalla relazione temporanea che soddisfa il predicato nella clausola where della query esterna.

Esempio di utilizzo della subquery nella clausola FROM

Discutiamo alcuni esempi del mondo reale per capire come funzionano nella pratica le subquery nella clausola FROM. Qui abbiamo due tabelle Istruttore tabella che contiene informazioni sugli istruttori incluso il loro stipendio e dipartimento. L'altro lo è Dipartimento tabella che contiene informazioni sui diversi dipartimenti, incluso il budget del dipartimento.

Istruttore Tavolo 

ID istruttoreNomeDipartimentoStipendio
44547FabbroInformatica95000
44541ContoElettrico55000
47778SoloStudi umanistici44000
48147ErikMeccanico80000
411547BalsamoTecnologie dell'informazione65000
48898JenaCivile50000

Dipartimento Tavolo

Nome del dipartimentoBilancio
Informatica100000
Elettrico80000
Studi umanistici50000
Meccanico40000
Tecnologie dell'informazione90000
Civile60000

Esempio 1: Trova tutti i professori il cui stipendio è superiore al budget medio di tutti i dipartimenti. 

In questo esempio utilizzeremo una sottoquery nella clausola FROM per calcolare il budget medio di tutti i dipartimenti e poi faremo il confronto con gli stipendi degli istruttori.

Domanda:   

deviazione standard numpy
SELECT I.InstructorID I.Name I.Department I.Salary  
FROM (SELECT AVG(Budget) AS averageBudget FROM Department) AS BUDGET
Instructor AS I
WHERE I.Salary > BUDGET.averageBudget;

Produzione  

ID istruttoreNomeDipartimentoStipendio
44547FabbroInformatica95000
48147ErikMeccanico80000

Spiegazione:

  • Il budget medio di tutti i dipartimenti dalla relazione di dipartimento è 70000.
  • Erik e Smith sono gli unici istruttori nella relazione istruttore il cui stipendio è superiore a 70000 e quindi sono presenti nella relazione di uscita. 

Perché utilizzare le subquery nella clausola FROM?

Esistono vari vantaggi nell'utilizzo delle subquery nella clausola FROM, come indicato di seguito:

  • Semplificazione : Possono semplificare query complesse suddividendole in parti più piccole e più gestibili. Non è necessario creare tabelle temporanee esplicitamente nel database.
  • Leggibilità migliorata : l'utilizzo di sottoquery nella clausola FROM rende la query più leggibile poiché divide > Flessibilità : le subquery consentono di eseguire operazioni che altrimenti sarebbero scomode come aggregazioni o filtraggi rispetto ad altri set di dati senza la necessità di creare tabelle intermedie.

Conclusione

Le sottoquery nella clausola FROM ci consentono di definire  set di risultati temporanei che potrebbe essere utilizzato da query esterne. Semplificano le operazioni SQL complesse, migliorano la leggibilità delle query e forniscono flessibilità nel filtraggio e nell'aggregazione dei dati. Sapere come utilizzare le subquery all'interno della clausola FROM è una competenza di base per ogni professionista SQL, in particolare quando si ha a che fare con database complessi o quando è necessario eseguire analisi di dati complesse.

Crea quiz