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 istruttore | Nome | Dipartimento | Stipendio |
|---|---|---|---|
| 44547 | Fabbro | Informatica | 95000 |
| 44541 | Conto | Elettrico | 55000 |
| 47778 | Solo | Studi umanistici | 44000 |
| 48147 | Erik | Meccanico | 80000 |
| 411547 | Balsamo | Tecnologie dell'informazione | 65000 |
| 48898 | Jena | Civile | 50000 |
Dipartimento Tavolo
| Nome del dipartimento | Bilancio |
|---|---|
| Informatica | 100000 |
| Elettrico | 80000 |
| Studi umanistici | 50000 |
| Meccanico | 40000 |
| Tecnologie dell'informazione | 90000 |
| Civile | 60000 |
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 istruttore | Nome | Dipartimento | Stipendio |
|---|---|---|---|
| 44547 | Fabbro | Informatica | 95000 |
| 48147 | Erik | Meccanico | 80000 |
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