logo

SQL | Dílčí dotazy v klauzuli From

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

Rajinikanth

WHERE 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 Java

KDE 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 instruktoraJménoOdděleníPlat
44547KovářPočítačová věda95 000
44541ÚčtovatElektrický55 000
47778SámHumanitní vědy44 000
48147ErikMechanické80 000
411547BalzámInformační technologie65 000
48898JenaCivilní50 000

Oddělení Tabulka

Název odděleníRozpočet
Počítačová věda100 000
Elektrický80 000
Humanitní vědy50 000
Mechanické40 000
Informační technologie90 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 instruktoraJménoOdděleníPlat
44547KovářPočítačová věda95 000
48147ErikMechanické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