MySQL MariaDB

MySQL poddotazy

MySQL poddotazy
Poddotaz je dotaz SQL v rámci většího dotazu, který je rekurzivní, nebo je poddotaz považován za interní dotaz. Naproti tomu vnější dotaz se nazývá dotaz, který obsahuje poddotaz. Do dotazů lze vložit poddotaz MySQL, včetně SELECT, INSERT, UPDATE nebo DELETE. Dále v rámci jiného poddotazu může být vnořený poddotaz. Fráze poddotaz by měla být uzavřena v závorkách, ať je použita kdekoli. Naučíme vás, jak a kdy použít poddotaz MySQL k sestavení složitých dotazů a popisu myšlenky přidruženého poddotazu. Otevřete prostředí příkazového řádku na ploše a zadejte heslo, abyste jej mohli začít používat. Stiskněte klávesu Enter a pokračujte.

Poddotaz v rámci záznamů jedné tabulky:

Vytvořte tabulku s názvem „zvířata“ v databázi.„Přidejte níže uvedený záznam různých zvířat s různými vlastnostmi, jak jsou zobrazeny. Načtěte tento záznam pomocí dotazu SELECT následujícím způsobem:

>> SELECT * FROM data.zvířata;

Příklad 01:

Načtěte omezené záznamy této tabulky pomocí poddotazů. Pomocí níže uvedeného dotazu víme, že poddotaz bude proveden jako první a jeho výstup bude použit v hlavním dotazu jako vstup. Poddotaz jednoduše načte věk, kde je cena zvířete 2500. Věk zvířete, jehož cena je 2500, je v tabulce 4. Hlavní dotaz vybere všechny záznamy v tabulce, kde je věk větší než 4 a výstup je uveden níže.

>> SELECT * FROM data.zvířata KDE Věk> (VYBERTE VĚK Z údajů.zvířata KDE Cena = '2500');

Příklad 02:

Použijme stejnou tabulku v různých situacích. V tomto příkladu použijeme v poddotazu místo klauzule WHERE nějakou funkci. Bereme průměr všech cen uvedených pro zvířata. Průměrná cena bude 3189. Hlavní dotaz vybere všechny záznamy o zvířatech, která mají cenu vyšší než 3189. Získáte níže uvedený výstup.

>> SELECT * FROM data.zvířata KDE Cena> (VYBERTE AVG (Cena) Z údajů.zvířata);

Příklad 03:

Pojďme použít klauzuli IN v hlavním dotazu SELECT. Nejprve subquery načte ceny vyšší než 2500. Poté hlavní dotaz vybere všechny záznamy tabulky „zvířata“, kde cena leží ve výsledku poddotazu.

>> SELECT * FROM data.zvířata KDE Cena V (VYBRAT Cena Z údajů.zvířata KDE Cena> 2500);

Příklad 04:

Pomocí poddotazu jsme načetli jméno zvířete, kde je cena 7000. Protože toto zvíře je kráva, proto se názvu „kráva“ vrátí hlavní dotaz. V hlavním dotazu budou všechny záznamy načteny z tabulky, kde je název zvířete „kráva“.„Jelikož máme jen dva záznamy o zvířecí„ krávě “, proto máme níže uvedený výstup.

>> SELECT * FROM data.zvířata WHERE Jméno = (VYBRAT jméno z údajů.zvířata KDE Cena = '7000');

Poddotaz v rámci více záznamů tabulky:

Předpokládejme níže uvedené dvě tabulky „student“ a „učitel“ ve své databázi. Zkusme několik příkladů poddotazů pomocí těchto dvou tabulek.

>> SELECT * FROM data.student;
>> SELECT * FROM data.učitel;

Příklad 01:

Načteme data z jedné tabulky pomocí poddotazu a použijeme je jako vstup pro hlavní dotaz. To znamená, že tyto dvě tabulky mohou nějakým způsobem souviset. V níže uvedeném příkladu jsme pomocí poddotazu načetli jméno studenta z tabulky „student“, kde je jméno učitele „Samina“.„Tento dotaz vrátí„ Saminu “učiteli hlavní tabulky dotazů.„Hlavní dotaz poté vybere všechny záznamy týkající se jména učitele“ Samina.„Jelikož máme pro toto jméno dva záznamy, máme tento výsledek.

>> SELECT * FROM data.učitel WHERE TeachName = (VYBERTE TeachName FROM data.student WHERE TeachName = 'Samina');

Příklad 02:

Chcete-li poddotaz zpracovat v případě různých tabulek, zkuste tento příklad. Máme poddotaz, který načítá jméno učitele od studenta tabulky. Název by měl mít ve své hodnotě „i“ na jakékoli pozici. To znamená, že všechna jména ve sloupci TeachName, která mají v hodnotě 'i', budou vybrána a vrácena do hlavního dotazu. Hlavní dotaz vybere všechny záznamy z tabulky „učitel“, kde je jméno učitele ve výstupu vráceném poddotazem. Protože poddotaz vrátil 4 jména učitelů, proto budeme mít záznam o všech těchto jménech uložených v tabulce 'učitel.''

>> SELECT * FROM data.učitel WHERE TeachName IN (VYBERTE TeachName FROM data.student WHERE TeachName LIKE '% i%');

Příklad 03:

Zvažte níže uvedené dvě tabulky, 'order' a 'order1'.

>> SELECT * FROM data.objednat;
>> SELECT * FROM data.order1;

Zkusme v tomto příkladu JAKOUKOLI klauzuli k vypracování poddotazu. Poddotaz vybere 'id' z tabulky 'order1', kde sloupec 'Status' má hodnotu 'Unpaid.„ID“ může být více než 1. To znamená, že více než 1 hodnota by byla vrácena do hlavního dotazu, aby se získaly výsledky tabulky 'order'. V takovém případě lze použít jakékoli „id“. Pro tento dotaz máme níže uvedený výstup.

>> VYBRAT položku, prodej, ID Z údajů.objednat WHERE id = ANY (vybrat ID z dat.order1 WHERE Status = 'nezaplaceno');

Příklad 04:

Před použitím jakéhokoli dotazu předpokládejme, že máte níže uvedená data v tabulce „order1“.

>> SELECT * FROM data.order1;

Pojďme použít dotaz v rámci dotazu k odstranění některých záznamů z tabulky 'order1'. Nejprve poddotaz vybere hodnotu „Status“ z tabulky „order“, kde je položka „Book“.„Poddotaz vrací jako hodnotu„ Zaplaceno “. Nyní hlavní dotaz odstraní řádky z tabulky „order1“, kde je ve sloupci „Status“ hodnota „Paid.''

>> ODSTRANIT FROM data.order1 WHERE Status = (VYBERTE stav z dat.objednat WHERE Item = 'Book');

Při kontrole nyní po provedení dotazu zůstaly níže uvedené záznamy v tabulce „order1“.

>> SELECT * FROM data.order1;

Závěr:

Ve všech výše uvedených příkladech jste efektivně pracovali s mnoha poddotazy. Doufáme, že vše je nyní jasné a čisté.

Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...
Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...
Hry Užitečné nástroje pro hráče Linuxu
Užitečné nástroje pro hráče Linuxu
Pokud rádi hrajete hry na Linuxu, je pravděpodobné, že jste ke zlepšení herního zážitku použili aplikace a nástroje jako Wine, Lutris a OBS Studio. Kr...