SQL dotazy jsou maso a brambory RDBMS CRUD (vytvořit, přečíst, aktualizovat, odstranit). Ale když vaše aplikace nebo podniková databáze roste, potřeba inteligentních dotazů pro získávání podmíněných dat specifických pro požadavky se stává nutností.

SQL je poměrně komplexní a zahrnuje mnoho funkcí – z nichž každá je vhodná pro různé obchodní použití. Jedna taková funkce zahrnuje použití dílčích dotazů.

Aby byly vaše kódy efektivní a efektivní, můžete v rámci svých kódů SQL používat dílčí dotazy k načítání dat, manipulaci s existujícími proměnnými a dosahování více cílů najednou.

Co jsou poddotazy SQL?

Dílčí dotaz je vnořený dotaz, který funguje jako parametr v rámci jiného hlavního dotazu. Dílčí dotaz je an vnitřní dotaz, zatímco hlavní dotaz je vnější dotaz.

Dílčí dotaz údajně vrací data jako argument v závorce pro hlavní dotaz, zatímco hlavní dotaz dále načítá konečný výsledek.

Dílčí dotazy jsou vloženy do Vybrat prohlášení nebo v Kde doložka. Taková struktura umožňuje, aby se dílčí dotaz choval jako dobře popsaná podmínka filtrace dat. Bohužel, dílčí dotazy mohou používat pouze

instagram viewer
Skupina vytvořená příkazy a ne Seřadit podle příkazy, protože ty jsou povoleny pouze v hlavním dotazu.

Příbuzný: Vše, co potřebujete vědět o příkazu SQL GROUP BY

Obvykle každý dílčí dotaz obsahuje jeden sloupec s Vybrat doložka. Existují však scénáře, kdy má hlavní dotaz více sloupců. Dílčí dotaz může být vnořen do jiného dílčího dotazu, čímž se stane vnořeným dílčím dotazem.

Struktura dílčího dotazu je následující:

Vyberte název_sloupce z tabulky, kde podmínka= 
(tabulka SELECT podmíněný_sloupec FROM) jako alias;

Předpokládejme například, že máte následující tabulku:

ID Jméno Druhé jméno Poplatek agentury
1 John Knot 5000
2 Roberte Graham 4000
3 Štěpáne Hicksovi 8000
4 Bobe Marley 1000
5 Marie Ellen 9000

Chcete-li v této tabulce vytáhnout jména lidí, kteří vydělávají nad průměrným honorářem agentury, můžete místo psaní více řádků kódu napsat dílčí dotaz.

Příbuzný: Jak vytvořit tabulku v SQL

Dotaz vypadá takto:

Vyberte * z agent_details
kde Agency_Fee > (vyberte průměr (Agency_Fee) z agent_details);

Příkaz před > znak je vnější dotaz, zatímco vše za > znak je vnitřní dotaz.

Vnitřní dotaz vypočítá průměrný agenturní poplatek v rámci dílčího dotazu a vnější dotaz zobrazí všechny hodnoty, které jsou větší než vypočtená průměrná hodnota.

Jak používat dílčí dotazy v SQL?

Existuje několik různých způsobů, jak můžete použít dílčí dotazy v SQL.

Dílčí dotazy s klauzulí Where

Jedna z nejzákladnějších struktur poddotazu v SQL je v klauzuli Where. Je to nejjednodušší způsob, jak definovat, co hledáte. Příkaz select vrací hodnoty podle podmínek dílčího dotazu a používá je jako parametr pro hlavní dotaz.

Struktura dotazu:

vyberte * z názvu_tabulky
kde název_sloupce = (vyberte název_sloupce z názvu_tabulky);

Pojďme si to vysvětlit na příkladu.

Předpokládejme, že chcete najít druhý nejvyšší poplatek za agenturu v tabulce agency_details. K tomu existují alternativní funkce v rámci SQL; nejlepší metodou je však použití dílčího dotazu.

Zde je návod, jak můžete definovat dílčí dotaz:

vybrat *, max (poplatek agentury)
z agent_details
kde Agency_fee < (vyberte maximum (Agency_fee) z agent_details);

Výsledný výpis vám ukáže 8000, což je druhý nejvyšší poplatek v dané tabulce. Když se dotaz spustí, dílčí dotaz vypočítá maximální hodnotu ze seznamu poplatků. Nejvyšší částka poplatku (9000) je uložen v paměti.

Jakmile je tato část spočítána, vypočítá se druhá část dotazu, která zjistí druhý nejvyšší poplatek z tabulky (od < se používá znak). Konečným výsledkem je 8000, což je druhý nejvyšší poplatek v tabulce.

Dílčí dotazy v rámci klauzule From

Další variací v rámci dílčích dotazů je předání podmínky v z doložka. Podle podobného konceptu se nejprve zpracuje vnitřní dotaz a poté se zpracuje vnější dotaz. Vnitřní dotaz vyfiltruje data a zobrazí výsledky, kde ID = 3.

Zde je dotaz pro referenci:

vyberte a.* z (
vyberte agency_fee z agent_details
kde ID = 3) jako a;

Toto je velmi základní struktura; čím jsou však vaše datové tabulky složitější, získáte více řádků dat, které odpovídají vašim podmínkám.

Použití dílčích dotazů s vložením do příkazu

Pokud chcete aktualizovat existující tabulku o nějaké nové datové řádky, můžete použít Vlož do tvrzení. Dílčí dotaz se může ukázat jako docela prospěšný, pokud chcete přidat hodnoty na základě konkrétní podmínky (podmínek).

Struktura dotazu:

vložit do table_name 
vyberte * z názvu_tabulky
kde název_sloupce = podmínky;
select * from table_name;

Zde je příklad toho, jak můžete použít příkaz insert into s dílčím dotazem:

vložit do agent_details
vyberte * z agent_details
kde agenturní_poplatek v (1000, 5000);
select * from agent_details;

Po spuštění dotazu budou hodnoty odpovídající podmínce znovu vloženy do existující tabulky. The vybrat * reference vybere všechny sloupce dohromady a vloží je do tabulky agent_details tak, jak je. The v příkaz se používá k definování více podmínek filtru najednou.

Použití dílčích dotazů s příkazem Update

Existují situace, kdy chcete při spouštění dotazů aktualizovat podkladové tabulky. Chcete-li tak učinit, můžete použít Aktualizace spolu s dotazovacími příkazy.

Takto napíšete dílčí dotaz, abyste aktualizovali informace v tabulce v jednom případě:

aktualizovat název_tabulky 
set column_name = new_value
kde název_sloupce =
(vyberte název_sloupce z názvu_tabulky, kde = );

Zde je příklad demonstrující použití příkazu aktualizace:

UPDATE agent_details 
SET agenturní_poplatek = 35 000
KDE agenturní_poplatek =
(SELECT agenturní_poplatek FROM agent_details WHERE First_name='John');
select * from agent_details;

Dílčí dotaz bude filtrovat sloupec agency_fee a vyčlení řádky, kde se jméno shoduje John. Dále se provede vnější dotaz, přičemž poplatek za agenturu se aktualizuje na 35 000 pro Johna Wicka.

Můžete projít a vybrat * prohlášení pro kontrolu konečných výsledků; zjistíte, že poplatek za agenturu pro Johna Wicka je aktualizován na 35 000, protože existuje pouze instance odpovídající podmínkám definovaným v dotazu.

Použití dílčích dotazů s příkazem Delete

Stejně jako příkaz aktualizace, ve kterém aktualizujete řádky dat v existující tabulce, vymazat příkaz odstraní řádky (řádky) dat na základě podmínky.

Struktura příkazu delete je:

odstranit z název_tabulky kde název proměnné/sloupce = 
(vyberte název_sloupce z názvu_tabulky, kde = podmínka);

Zde je příklad:

Smazat z agent_details 
kde Křestní_jméno IN
(vyberte First_name z agent_details, kde agency_fee = 9000);
select * from agent_details;

Použití dílčích dotazů v rámci SQL

Dílčí dotazy jsou vynikající funkcí v rámci SQL, která vám může ušetřit psaní nekonečných řádků zbytečného kódu. Když jste schopni použít základní funkce dílčích dotazů pro zadávání nabídek, nikdy byste se nechtěli starat o složitost kódování SQL.

Vždy je nejlepší zlepšit své stávající znalosti SQL, abyste měli jistotu, že budete vždy na vrcholu své hry. Ujišťujeme vás, že cheat sheets SQL vám mohou poskytnout dobrou představu o tom, jak oprášit vaše základy jediným pohledem.

Cheat pro základní příkazy SQL pro začátečníky

Chcete se dozvědět více o SQL? Zvládnutí různých příkazů SQL dotazu je skvělý způsob, jak se dostat dopředu.

Přečtěte si další

PodíltweetE-mailem
Související témata
  • Programování
  • Programování
  • SQL
  • Programovací nástroje
O autorovi
Gaurav Siyal (Zveřejněno 35 článků)

Gaurav Siyal má dva roky zkušeností s psaním, psaním pro řadu digitálních marketingových firem a dokumentů životního cyklu softwaru.

Více od Gaurava Siyala

Přihlaste se k odběru našeho newsletteru

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!

Chcete-li se přihlásit k odběru, klikněte sem