MySQL SubQuery Tutorial ja esimerkkejä

Mitä alikyselyt ovat?

Alikysely on valintakysely, joka sisältyy toiseen kyselyyn. Sisäistä valintakyselyä käytetään yleensä määrittämään ulomman valintakyselyn tulokset.

Katsotaanpa alikyselyn syntaksia -

MySQL Alikysely

MyFlix Video Libraryn asiakkaiden yleinen valitus on elokuvien alhainen määrä. Johto haluaa ostaa elokuvia kategoriaan, jossa on vähiten nimikkeitä.

Voit käyttää kyselyä kuten

SELECT category_name FROM categories WHERE category_id =( SELECT MIN(category_id) from movies);

Se antaa tuloksen

MySQL Alikysely

Katsotaan kuinka tämä kysely toimii

MySQL Alikysely

Yllä oleva on muoto Rivi-alikysely. Tällaisissa alikyselyissä sisäinen kysely voi antaa vain YHDEN tuloksen. Sallitut operaattorit rivialikyselyjen kanssa ovat [=, >, =, <=, ,!=, ]

Katsotaanpa toista esimerkkiä,

Oletetaan, että haluat niiden jäsenten nimet ja puhelinnumerot, jotka ovat vuokranneet elokuvan ja eivät ole vielä palauttaneet niitä. Kun saat nimet ja puhelinnumeron, soitat heille ja annat muistutuksen. Voit käyttää kyselyä kuten

SELECT full_names,contact_number FROM   members  WHERE  membership_number IN (SELECT membership_number FROM movierentals WHERE return_date IS NULL );


MySQL Alikysely

Katsotaan kuinka tämä kysely toimii

MySQL Alikysely

Tässä tapauksessa sisäinen kysely palauttaa useamman kuin yhden tuloksen. Yllä oleva on tyyppiä Tkykenevä alikyselyy.

Tähän mennessä olemme nähneet kaksi kyselyä, katsotaan nyt esimerkki kolminkertainen kysely!

Oletetaan, että johto haluaa palkita eniten maksavan jäsenen.

Voimme suorittaa kyselyn kuten

Select full_names From members WHERE membership_number = (SELECT membership_number FROM payments WHERE amount_paid = (SELECT MAX(amount_paid) FROM payments));

Yllä oleva kysely antaa seuraavan tuloksen -

MySQL Alikysely

Alakyselyt vs liittyminen!

Kun verrataan Liitoksiin, alikyselyt ovat helppokäyttöisiä ja helppolukuisia. Ne eivät ole niin monimutkaisia ​​kuin Liitosten

Siksi niitä käytetään usein SQL-aloittelijat.

Mutta alikyselyissä on suorituskykyongelmia. Liitoksen käyttäminen alikyselyn sijaan voi toisinaan parantaa suorituskykyä jopa 500 kertaa.

Jos valinta on annettu, on suositeltavaa käyttää JOIN-komentoa alikyselyssä.


Alakyselyitä tulee käyttää vain vararatkaisuna, kun et voi käyttää JOIN-toimintoa yllä olevan saavuttamiseksi.

Alakyselyt vs liitokset

Yhteenveto

  • Alikyselyt ovat toisen kyselyn sisään upotettuja kyselyitä. Upotettu kysely tunnetaan sisäisenä kyselynä ja säilökysely tunnetaan ulkoisena kyselynä.
  • Alakyselyitä on helppo käyttää, ne tarjoavat suurta joustavuutta ja ne voidaan helposti jakaa yksittäisiin loogisiin komponentteihin, jotka muodostavat kyselyn, mikä on erittäin hyödyllistä, kun Testaus ja kyselyiden virheenkorjaus.
  • MySQL tukee kolmenlaisia ​​alikyselyitä, skalaari-, rivi- ja taulukkoalikyselyjä.
  • Skalaari-alikyselyt palauttavat vain yhden rivin ja yhden sarakkeen.
  • Rivin alakyselyt palauttavat vain yhden rivin, mutta niissä voi olla useampi kuin yksi sarake.
  • Taulukon alikyselyt voivat palauttaa useita rivejä ja sarakkeita.
  • Alikyselyitä voidaan käyttää myös INSERT-, UPDATE- ja DELETE-kyselyissä.
  • Suorituskykyongelmissa, kun tietoja haetaan useista taulukoista, on erittäin suositeltavaa käyttää JOIN-koodeja alikyselyjen sijaan. Alakyselyitä tulee käyttää vain hyvästä syystä.