Poddotazy SQL jsou cenné funkce , které nám umožňují vložit jeden dotaz do jiného a přidávají další důležitost k načítání a manipulaci dat složitým způsobem. Používá se k nastavení dočasných tabulek nebo dílčích výsledků , které následně použije vnější dotaz.
Poddotaz v klauzuli FROM
Klauzuli FROM lze použít k určení výrazu poddotazu v SQL. Relace vytvořená poddotazem je pak použita jako nová relace, na kterou je aplikován vnější dotaz pro další operace. Poddotazy vFROMklauzule se používá, když potřebujeme vytvořit dočasnou datovou sadu, která neexistuje v žádné fyzické tabulce. To může být velmi užitečné při práci s komplexními datovými sadami.
zkontrolujte null v Javě
Korelační proměnné z tabulek odkazovaných v klauzuli FROM vnějšího dotazu nelze použít přímo v poddotazech v klauzuli FROM. Níže jsou uvedeny dvě syntaxe použití poddotazu v klauzuli FROM používané v různých scénářích.
1. Jednoduchý poddotaz vFROMDoložka:
VYBERTE sloupec1 sloupec2
FROM (SELECT sloupec_x AS C1 sloupec_y FROM tabulka WHERE podmínka) AS tabulka_poddotazu
RajinikanthWHERE vnější_stav;
2. Poddotaz vFROMDoložka sJOIN:
VYBERTE sloupec1 sloupec2
FROM (SELECT sloupec_x AS C1 sloupec_y FROM tabulka WHERE PREDICATE_X) AS tabulka2
JOIN table1 ON table2.some_column = table1.some_column
čtení souboru csv v jazyce JavaKDE PREDIKÁT;
Parametry:
- Poddotaz : Vnitřní dotaz uzavřený v závorkách. Získává data, která budou fungovat jako dočasná tabulka.
- Přezdívka : Poddotazu musí být přidělen alias (
subquery_table), na který se bude odkazovat ve vnějším dotazu. - Vnější dotaz : Vnější dotaz pak může pracovat s touto dočasnou tabulkou vytvořenou poddotazem použitím filtrů nebo prováděním dalších operací.
Jak fungují dílčí dotazy v klauzuli FROM
- Vyhodnocení poddotazu : Nejprve se vyhodnotí dílčí dotaz v klauzuli from a poté se výsledky vyhodnocení uloží do nového dočasného vztahu.
- Vnější dotaz : Poté, co poddotaz provede a vrátí datovou množinu, vyhodnotí se vnější dotaz výběrem pouze těch n-tic z dočasného vztahu, které splňují predikát v klauzuli where vnějšího dotazu.
Příklad použití poddotazu v klauzuli FROM
Pojďme diskutovat o několika příkladech ze skutečného světa, abychom pochopili, jak poddotazy v klauzuli FROM fungují v praxi. Tady máme dvě tabulky Instruktor tabulka, která obsahuje informace o instruktorech včetně jejich platu a oddělení. Další je Oddělení tabulka, která obsahuje informace o různých odděleních včetně rozpočtu oddělení.
Instruktor Tabulka
| ID instruktora | Jméno | Oddělení | Plat |
|---|---|---|---|
| 44547 | Kovář | Počítačová věda | 95 000 |
| 44541 | Účtovat | Elektrický | 55 000 |
| 47778 | Sám | Humanitní vědy | 44 000 |
| 48147 | Erik | Mechanické | 80 000 |
| 411547 | Balzám | Informační technologie | 65 000 |
| 48898 | Jena | Civilní | 50 000 |
Oddělení Tabulka
| Název oddělení | Rozpočet |
|---|---|
| Počítačová věda | 100 000 |
| Elektrický | 80 000 |
| Humanitní vědy | 50 000 |
| Mechanické | 40 000 |
| Informační technologie | 90 000 |
| Civilní | 60 000 |
Příklad 1: Najděte všechny profesory, jejichž plat je vyšší než průměrný rozpočet všech kateder.
V tomto příkladu použijeme poddotaz v klauzuli FROM k výpočtu průměrného rozpočtu všech oddělení a poté provedeme srovnání s platy instruktorů.
Dotaz:
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 instruktora | Jméno | Oddělení | Plat |
|---|---|---|---|
| 44547 | Kovář | Počítačová věda | 95 000 |
| 48147 | Erik | Mechanické | 80 000 |
Vysvětlení:
rozbalení v linuxu
- Průměrný rozpočet všech oddělení z resortního vztahu je 70 000,-.
- Erik a Smith jsou jediní instruktoři ve vztahu instruktor, jejichž plat je vyšší než 70 000, a proto jsou přítomni ve výstupním vztahu.
Proč používat poddotazy v klauzuli FROM?
Použití poddotazů v klauzuli FROM má různé výhody, jak je uvedeno níže:
- Zjednodušení : Mohou zjednodušit složité dotazy tím, že je rozdělí na menší, lépe spravovatelné části. Není nutné vytvářet dočasné tabulky explicitně ve vaší databázi.
- Vylepšená čitelnost : Použití poddotazů v klauzuli FROM učiní dotaz čitelnější , protože odděluje > Flexibilita : Dílčí dotazy vám umožňují provádět operace, které by jinak byly nepohodlné, jako jsou agregace nebo filtrování s ohledem na jiné datové sady, aniž byste museli vytvářet přechodné tabulky.
Závěr
Dílčí dotazy v klauzuli FROM nám umožňují definovat dočasné sady výsledků které mohou využívat vnější dotazy. Usnadňují složité operace SQL, zlepšují čitelnost dotazu a poskytují flexibilitu při filtrování a agregaci dat. Vědět, jak využívat poddotazy v klauzuli FROM, je základní dovednost pro každého odborníka na SQL, zejména když zabývá složitými databázemi nebo když musíte provádět složitou analýzu dat.
Vytvořit kvíz