MySQL MariaDB

MySQL poddotazy

MySQL poddotazy
Poddotaz je dotaz SQL v rámci väčšieho dotazu, ktorý je rekurzívny, alebo sa poddotaz považuje za interný dotaz. Naproti tomu vonkajší dopyt sa nazýva dotaz, ktorý obsahuje poddotaz. Do dotazov je možné vložiť poddotaz MySQL, vrátane príkazov SELECT, INSERT, UPDATE alebo DELETE. Ďalej v rámci iného poddotazu môže byť vnorený poddotaz. Fráza poddotaz by mala byť kdekoľvek použitá v zátvorkách. Naučíme vás, ako a kedy použiť poddotaz MySQL na zostavenie komplikovaných dotazov a na popísanie myšlienky súvisiaceho poddotazu. Otvorte shell príkazového riadku na pracovnej ploche a napíšte svoje heslo, aby ste ho mohli začať používať. Stlačte kláves Enter a pokračujte.

Poddotaz v rámci záznamov jednej tabuľky:

Vytvorte tabuľku s názvom „zvieratá“ v databáze.„Pridajte nasledujúci nasledujúci záznam rôznych zvierat s rôznymi vlastnosťami, ako sú zobrazené. Načítajte tento záznam pomocou dotazu SELECT takto:

>> SELECT * FROM data.zvieratá;

Príklad 01:

Načítajme obmedzené záznamy tejto tabuľky pomocou poddotazov. Pomocou nižšie uvedeného dotazu vieme, že najskôr sa vykoná poddotaz a jeho výstup sa použije v hlavnom dotaze ako vstup. Poddotaz jednoducho načíta vek, v ktorom je cena zvieraťa 2 500. Vek zvieraťa, ktorého cena je 2 500, je v tabuľke 4. Hlavný dopyt vyberie všetky záznamy tabuľky, ktorých vek je väčší ako 4, a výstup je uvedený nižšie.

>> SELECT * FROM data.zvieratá KDE Vek> (VYBERTE VEK Z údajov.zvieratá KDE Cena = „2 500“);

Príklad 02:

Použime tú istú tabuľku v rôznych situáciách. V tomto príklade použijeme v poddotaze namiesto klauzuly WHERE nejakú funkciu. Berieme priemer všetkých cien uvádzaných pre zvieratá. Priemerná cena bude 3189. Hlavný dopyt vyberie všetky záznamy o zvieratách, ktorých cena je vyššia ako 3189. Získate nižšie uvedený výstup.

>> SELECT * FROM data.zvieratá KDE Cena> (VYBERTE AVG (Cena) Z údajov.zvieratá);

Príklad 03:

Použime klauzulu IN v hlavnom dotaze SELECT. Najskôr poddotaz vyvolá ceny vyššie ako 2 500. Potom hlavný dopyt vyberie všetky záznamy tabuľky „zvieratá“, kde cena leží vo výsledku poddotazu.

>> SELECT * FROM data.zvieratá KDE Cena V (VYBERTE Cena Z údajov.zvieratá KDE Cena> 2 500);

Príklad 04:

Pomocou poddotazu sme načítali meno zvieraťa, ktorého cena je 7000. Pretože toto zviera je krava, preto sa názvu „krava“ vráti hlavný dopyt. V hlavnom dotaze sa všetky záznamy získajú z tabuľky, kde je názov zvieraťa „krava“.„Pretože máme iba dva záznamy o zvieracej„ krave “, máme k dispozícii ďalší výstup.

>> SELECT * FROM data.zvieratá KDE Meno = (VYBERTE Meno Z údajov.zvieratá KDE Cena = '7000');

Poddotaz v rámci viacerých záznamov tabuľky:

Predpokladajme, že vo vašej databáze sú uvedené dva tabuľky „študent“ a „učiteľ“. Vyskúšajme niekoľko príkladov poddotazov pomocou týchto dvoch tabuliek.

>> SELECT * FROM data.študent;
>> SELECT * FROM data.učiteľ;

Príklad 01:

Načítame údaje z jednej tabuľky pomocou poddotazu a použijeme ich ako vstup pre hlavný dopyt. To znamená, že tieto dve tabuľky môžu nejakým spôsobom súvisieť. V nasledujúcom príklade sme pomocou poddotazu načítali meno študenta z tabuľky „študent“, kde je meno učiteľa „Samina“.„Tento dopyt vráti„ Saminu “učiteľovi hlavnej tabuľky dotazov.„Hlavný dopyt potom vyberie všetky záznamy týkajúce sa mena učiteľa„ Samina.„Pretože máme dva záznamy o tomto mene, máme tento výsledok.

>> SELECT * FROM data.učiteľ WHERE TeachName = (VYBERTE TeachName FROM údajov.študent WHERE TeachName = 'Samina');

Príklad 02:

Ak chcete vypracovať poddotaz v prípade rôznych tabuliek, vyskúšajte tento príklad. Máme poddotaz, ktorý načítava meno učiteľa od študenta tabuľky. Názov by mal mať hodnotu „i“ na ľubovoľnom mieste. To znamená, že všetky názvy v stĺpci TeachName, ktoré majú v hodnote „i“, budú vybrané a vrátené do hlavného dotazu. Hlavný dopyt vyberie všetky záznamy z tabuľky „učiteľ“, kde je meno učiteľa vo výstupe vrátenom poddotazom. Keďže poddotaz vrátil 4 mená učiteľov, preto budeme mať záznam o všetkých týchto menách uložených v tabuľke „učiteľ“.„

>> SELECT * FROM data.učiteľ WHERE TeachName IN (VYBERTE TeachName FROM údajov.študent WHERE TeachName LIKE '% i%');

Príklad 03:

Zvážte nasledujúce dve tabuľky „order“ a „order1“.

>> SELECT * FROM data.objednať;
>> SELECT * FROM data.objednávka1;

Vyskúšajme AJKOLIEK klauzulu v tomto príklade na vypracovanie poddotazy. Poddotaz vyberie „id“ z tabuľky „order1“, kde má stĺpec „Status“ hodnotu „Unpaid“.„ID“ môže byť viac ako 1. To znamená, že do hlavného dotazu sa vráti viac ako 1 hodnota, aby sa získali výsledky tabuľky „usporiadať“. V takom prípade je možné použiť akékoľvek „id“. Pre tento dopyt máme nižšie uvedený výstup.

>> VYBERTE položku, tržby, ID Z údajov.poradie WHERE id = ANY (vybrať ID z údajov.order1 WHERE Status = 'Neplatené');

Príklad 04:

Predpokladajme, že v tabuľke „order1“ máte pred použitím ľubovoľného dotazu nižšie uvedené údaje.

>> SELECT * FROM data.objednávka1;

Použime dopyt v rámci dotazu na odstránenie niektorých záznamov z tabuľky „order1“. Najskôr poddotaz vyberie hodnotu „Stav“ z tabuľky „objednávka“, kde je položka „Kniha“.„Poddotaz vráti ako hodnotu hodnotu„ Zaplatené “. Teraz hlavný dopyt vymaže riadky z tabuľky „order1“, kde je hodnota stĺpca „Stav“ „Platené“.„

>> ODSTRÁNIŤ Z údajov.order1 WHERE Status = (VYBERTE stav Z údajov.objednať WHERE Item = 'Book');

Pri kontrole nám teraz zostali nižšie uvedené záznamy v tabuľke „order1“ po vykonaní dotazu.

>> SELECT * FROM data.objednávka1;

Záver:

Vo všetkých vyššie uvedených príkladoch ste efektívne pracovali s mnohými poddotazmi. Dúfame, že teraz je všetko jasné a čisté.

Ako zmeniť ľavé a pravé tlačidlo myši na počítači so systémom Windows 10
Je úplnou normou, že všetky zariadenia počítačových myší sú ergonomicky navrhnuté pre pravákov. Existujú však dostupné myšacie zariadenia, ktoré sú šp...
Napodobňovanie kliknutí myšou vznášaním sa pomocou myši bez myši vo Windows 10
Používanie myši alebo klávesnice v nesprávnom postoji k nadmernému používaniu môže mať za následok veľa zdravotných problémov vrátane napätia, syndróm...
Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...