Poddopyty SQL sú cenné funkcie , ktoré nám umožňujú vložiť jeden dopyt do iného, čím sa zvyšuje dôležitosť načítavania a manipulácie údajov komplikovaným spôsobom. Používa sa na nastavenie dočasných tabuliek alebo medzivýsledkov , ktoré následne používa vonkajší dopyt.
Poddotaz v klauzule FROM
Klauzula FROM sa môže použiť na zadanie výrazu poddotazu v SQL. Vzťah vytvorený poddotazom sa potom použije ako nový vzťah, na ktorý sa použije vonkajší dotaz pre ďalšie operácie. Poddotazy vFROMklauzula sa používa, keď potrebujeme vytvoriť dočasný súbor údajov, ktorý neexistuje v žiadnej fyzickej tabuľke. To môže byť mimoriadne užitočné pri práci s komplexnými súbormi údajov.
ako získať skryté aplikácie
Korelačné premenné z tabuliek, na ktoré sa odkazuje v klauzule FROM vonkajšieho dotazu, nemožno použiť priamo v poddotazoch v klauzule FROM. Nižšie sú uvedené dve syntaxe použitia poddotazu v klauzule FROM používanej v rôznych scenároch.
1. Jednoduchý poddotaz vFROMklauzula:
VYBERTE stĺpec1 stĺpec2
FROM (SELECT column_x AS C1 column_y FROM tabuľka WHERE podmienka) AS subquery_table
WHERE vonkajší_stav;
2. Poddotaz vFROMDoložka sJOIN:
VYBERTE stĺpec1 stĺpec2
FROM (SELECT stĺpec_x AS C1 stĺpec_y FROM tabuľka WHERE PREDICATE_X) AS tabuľka2
polymorfizmusJOIN table1 ON table2.some_column = table1.some_column
KDE PREDIKÁT;
Parametre:
- Poddotaz : Vnútorný dotaz v zátvorkách. Získava údaje, ktoré budú fungovať ako dočasná tabuľka.
- Alias : Poddotaz musí mať priradený alias (
subquery_table), na ktorý sa má odkazovať vo vonkajšom dotaze. - Vonkajší dopyt : Vonkajší dotaz potom môže pracovať s touto dočasnou tabuľkou vytvorenou poddotazom použitím filtrov alebo vykonaním ďalších operácií.
Ako fungujú poddotazy v klauzule FROM
- Vyhodnotenie poddotazu : Najprv sa vyhodnotí poddotaz v klauzule from a potom sa výsledky vyhodnotenia uložia do nového dočasného vzťahu.
- Vonkajší dopyt : Po vykonaní poddotazu a návrate množiny údajov sa vyhodnotí vonkajší dotaz, pričom sa vyberú iba tie n-tice z dočasného vzťahu, ktoré spĺňajú predikát v klauzule where vonkajšieho dotazu.
Príklad použitia poddotazu v klauzule FROM
Poďme diskutovať o niekoľkých príkladoch z reálneho sveta, aby sme pochopili, ako poddotazy v klauzule FROM fungujú v praxi. Tu máme dve tabuľky Inštruktor tabuľka, ktorá obsahuje informácie o inštruktoroch vrátane ich platu a oddelenia. Iný je oddelenie tabuľku, ktorá obsahuje informácie o rôznych oddeleniach vrátane rozpočtu oddelenia.
Inštruktor Tabuľka
| ID inštruktora | Meno | oddelenie | Plat |
|---|---|---|---|
| 44547 | Smith | Informatika | 95 000 |
| 44541 | Bill | Elektrické | 55 000 |
| 47778 | Sám | Humanitné vedy | 44 000 |
| 48147 | Erik | Mechanické | 80 000 |
| 411547 | Balzam | informačné technológie | 65 000 |
| 48898 | Jena | Civilný | 50 000 |
oddelenie Tabuľka
| Názov oddelenia | Rozpočet |
|---|---|
| Informatika | 100 000 |
| Elektrické | 80 000 |
| Humanitné vedy | 50 000 |
| Mechanické | 40 000 |
| informačné technológie | 90 000 |
| Civilný | 60 000 |
Príklad 1: Nájdite všetkých profesorov, ktorých plat je vyšší ako priemerný rozpočet všetkých oddelení.
V tomto príklade použijeme poddotaz v klauzule FROM na výpočet priemerného rozpočtu všetkých oddelení a potom urobíme porovnanie s platmi inštruktorov.
reťazec dĺžky
dotaz:
veľkosť latexového textu
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;
Výstup
| ID inštruktora | Meno | oddelenie | Plat |
|---|---|---|---|
| 44547 | Smith | Informatika | 95 000 |
| 48147 | Erik | Mechanické | 80 000 |
Vysvetlenie:
- Priemerný rozpočet všetkých oddelení z rezortného vzťahu je 70000.
- Erik a Smith sú jediní inštruktori vo vzťahu inštruktor, ktorých plat je viac ako 70 000, a preto sú prítomní vo výstupnom vzťahu.
Prečo používať poddotazy v klauzule FROM?
Existujú rôzne výhody používania poddotazov v klauzule FROM, ako je uvedené nižšie:
- Zjednodušenie : Môžu zjednodušiť zložité dotazy tým, že ich rozdelia na menšie, lepšie spravovateľné časti. Dočasné tabuľky nemusíte vytvárať explicitne vo svojej databáze.
- Vylepšená čitateľnosť : Použitie čiastkových dopytov v klauzule FROM robí dopyt čitateľnejším, keďže rozdeľuje > Flexibilita : Poddotazy vám umožňujú vykonávať operácie , ktoré inak by boli nepohodlné ako agregácie alebo filtrovanie s ohľadom na iné množiny údajov bez potreby vytvárať sprostredkujúce tabuľky.
Záver
Poddotazy v klauzule FROM nám umožňujú definovať dočasné sady výsledkov ktoré môže používať vonkajšie dopyty. Uľahčujú zložité operácie SQL, zlepšujú čitateľnosť dopytov a poskytujú flexibilitu pri filtrovaní a agregácii údajov. Vedieť, ako využívať poddotazy v rámci klauzuly FROM, je základná zručnosť každého odborníka na SQL, najmä pri narábaní s komplexnými databázami alebo keď musíte vykonávať zložitú analýzu údajov.
Vytvoriť kvíz