MySQL MariaDB

MySQL alampäringud

MySQL alampäringud
Alampäring on suurema päringu SQL-päring, mis on rekursiivne, või alampäringut peetakse sisemiseks päringuks. Seevastu välimist päringut nimetatakse päringuks, mis sisaldab alampäringut. MySQL-i päringu saab manustada päringutesse, sealhulgas SELECT, INSERT, UPDATE või DELETE. Lisaks võib teise päringu sees olla alampäring. Väljend subquery peaks olema sulgudes suletud kõikjal, kus seda kasutatakse. Me õpetame teile, kuidas ja millal kasutada MySQL-i alampäringut keerukate päringute koostamiseks ja seotud alampäringu idee kirjeldamiseks. Avage oma töölaual käsurea kest ja kirjutage selle kasutamiseks oma parool. Vajutage sisestusklahvi ja jätkake.

Alampäring ühe tabeli kirjetes:

Looge andmebaasi andmetesse tabel nimega 'loomad'."Lisage alljärgnev kirje erinevate loomade kohta, millel on erinevad omadused. Toogige see kirje, kasutades päringut SELECT järgmiselt:

>> SELECT * FROM andmetest.loomad;

Näide 01:

Toome selle tabeli piiratud kirjed alampäringute abil. Allolevat päringut kasutades teame, et kõigepealt käivitatakse alampäring ja selle väljundit kasutatakse põhipäringus sisendina. Alampäring otsib lihtsalt vanust, kus looma hind on 2500. 2500 looma vanus on tabelis 4. Peamine päring valib kõik tabelikirjed, kus vanus on suurem kui 4, ja väljund on toodud allpool.

>> SELECT * FROM andmetest.loomad WHERE Vanus> (SELECT Age From From andmed.loomad KUS Hind = '2500');

Näide 02:

Kasutame sama tabelit erinevates olukordades. Selles näites kasutame alampäringus WHERE-lause asemel mõnda funktsiooni. Oleme võtnud kõigi loomadele antud hindade keskmise. Keskmiseks hinnaks saab 3189. Peamine päring valib kõik kirjed loomade kohta, kelle hind on üle 3189. Saad allpool toodud väljundi.

>> SELECT * FROM andmetest.loomad WHERE Hind> (SELECT AVG (Hind) FROM andmed.loomad);

Näide 03:

Kasutame põhipäringus SELECT klauslit IN. Kõigepealt toob alampäring hinnad üle 2500. Pärast seda valib põhipäring kõik tabeli „loomad” kirjed, kus hind seisneb alampäringu tulemuses.

>> SELECT * FROM andmetest.loomad WHERE Hind IN (VALI Hind FROM andmetest.loomad KUS Hind> 2500);

Näide 04:

Oleme kasutanud alaküsimust looma nime hankimiseks, kus hind on 7000. Kuna see loom on lehm, tagastatakse sellepärast nimi „lehm” põhipäringule. Põhipäringus leitakse kõik kirjed tabelist, kus looma nimi on 'lehm."Kuna meil on ainult kaks looma" lehma "kirjet, on meil seetõttu allpool toodud väljund.

>> SELECT * FROM andmetest.loomad KUS Nimi = (NIMI VALIGE andmetest.loomad KUS Hind = '7000');

Mitme tabeli kirjete alampäring:

Oletame, et teie andmebaasis on kaks allpool olevat tabelit - "õpilane" ja "õpetaja". Proovime nende kahe tabeli abil mõnda alampäringute näidet.

>> SELECT * FROM andmetest.õpilane;
>> SELECT * FROM andmetest.õpetaja;

Näide 01:

Toome alampäringu abil ühest tabelist andmed ja kasutame neid põhipäringu sisendina. See tähendab, et need kaks tabelit võivad mingil viisil omavahel seotud olla. Allpool toodud näites oleme kasutanud alampäringut õpilase nime hankimiseks tabelist "õpilane", kus õpetaja nimi on "Samina".'Selle päringuga tagastatakse' Samina 'põhipäringu tabeli õpetajale.'Peamine päring valib seejärel kõik õpetaja nimega seotud kirjed' Samina."Kuna meil on selle nime jaoks kaks rekordit, oleme selle tulemuse saanud.

>> SELECT * FROM andmetest.õpetaja WHERE TeachName = (VALI TeachName FROM andmetest.õpilane WHERE TeachName = 'Samina');

Näide 02:

Erinevate tabelite puhul alaküsimuse täpsustamiseks proovige seda näidet. Meil on alampäring, mis võtab tabeliõpilaselt õpetaja nime. Nime väärtus peab igal tähel olema täht „i”. See tähendab, et veerus TeachName kõik nimed, mille väärtus on „i”, valitakse ja tagastatakse põhipäringu juurde. Peamine päring valib kõik kirjed tabelist "õpetaja", kus õpetaja nimi on alampäringu tagastatud väljundis. Kuna alampäring tagastas 4 õpetaja nime, registreerime sellepärast kõigi nende nimed, kes elavad tabelis õpetaja."

>> SELECT * FROM andmetest.õpetaja WHERE TeachName IN (VALI TeachName FROM andmetest.õpilane KUHU TeachName LIKE '% i%');

Näide 03:

Mõelge kahele alltoodud tabelile „tellimus” ja „tellimus1”.

>> SELECT * FROM andmetest.tellimus;
>> SELECT * FROM andmetest.tellimus1;

Alampäringu täpsustamiseks proovime selles näites MIDAGI klauslit. Alampäring valib tabelist „order1” ID, kus veeru „Status” väärtus on „Tasumata”.'Id' võib olla rohkem kui 1. See tähendab, et tabeli 'order' tulemuste saamiseks tagastatakse põhipäringule rohkem kui 1 väärtus. Sel juhul võiks kasutada mis tahes id-d. Selle päringu jaoks on meil allpool toodud väljund.

>> VALI üksus, müük, ID FROM andmetest.järjekord WHERE id = ANY (VALI ID FROM andmetest.order1 WHERE Status = 'Tasumata');

Näide 04:

Oletame, et teil on enne päringu kasutamist tabelis 'order1' järgmised andmed.

>> SELECT * FROM andmetest.tellimus1;

Rakendame päringu päringus, et kustutada mõned kirjed tabelist 'order1'. Esiteks valib alampäring tabeli „order” väärtuse „Status”, kus üksus on „Book”.'Alampäring tagastab väärtuseks' Tasuline '. Nüüd kustutab peamine päring read tabelist „order1”, kus veeru „Status” väärtus on „Tasuline."

>> Kustuta andmetest.order1 WHERE Status = (VALI STATSIOONI ANDMED.tellimus WHERE Item = 'Book');

Kontrollimisel on alljärgnevad kirjed jäänud pärast päringu täitmist tabelisse „order1”.

>> SELECT * FROM andmetest.tellimus1;

Järeldus:

Kõigis ülaltoodud näidetes olete tõhusalt töötanud paljude alampäringutega. Loodame, et nüüd on kõik selge ja puhas.

Parimad Oculus App Lab mängud
Kui olete Oculuse peakomplekti omanik, peate olema teadlik külglaadimisest. Kõrvalaadimine on protsess, millega installitakse peakomplekti mitte-poesi...
10 parimat mängu, mida Ubuntu kaudu mängida
Windowsi platvorm on olnud üks mängude domineerivaid platvorme, kuna tohutu protsent mänge areneb täna Windowsi loomupäraseks toetamiseks. Kas keegi s...
5 parimat arkaadmängu Linuxile
Tänapäeval on arvutid tõsised mängimiseks kasutatavad masinad. Kui te ei saa uut rekordit, teate, mida ma mõtlen. Selles postituses saate teada mõnda ...