Mitä ovat alakyselyt?
Alakysely on valintakysely, joka sisältyy toiseen kyselyyn. Sisäistä valintakyselyä käytetään yleensä määrittämään ulomman valintakyselyn tulokset.
Tarkastellaan alakyselyn syntaksia -
MyFlix-videokirjaston yleinen asiakasvalitus on elokuvien alhainen määrä. Johto haluaa ostaa elokuvia luokalle, jolla 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
Katsotaanpa, miten tämä kysely toimii
Edellä on eräänlainen rivin alakysely . Tällaisissa alakyselyissä sisempi kysely voi antaa vain YKSI tuloksen. Sallitut operaattorit työskennellessäsi rivikyselyjen kanssa ovat [=,>, =, <=,,! =,]
Katsotaanpa toista esimerkkiä,
Oletetaan, että haluat niiden elokuvien vuokraajien jäsenten nimet ja puhelinnumerot, jotka eivät ole vielä palauttaneet niitä. Kun saat nimet ja puhelinnumerot, soitat heille muistutuksen antamiseksi. 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 );
Katsotaanpa, miten tämä kysely toimii
Tässä tapauksessa sisempi kysely palauttaa useamman kuin yhden tuloksen. Edellä on tyypin T kykenevä alikysely y.
Tähän asti olemme nähneet kaksi kyselyä, voimme nyt nähdä esimerkin kolminkyselystä !!!
Oletetaan, että johto haluaa palkita eniten palkatun 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 -
Alakyselyt Vs liittyy!
Verrattuna Liittymiin, alakyselyt ovat helppokäyttöisiä ja helposti luettavia. Ne eivät ole yhtä monimutkaisia kuin Liittymät
Siksi SQL-aloittelijat käyttävät niitä usein.
Mutta alakyselyillä on suorituskykyongelmia. Liittymän käyttäminen alakyselyn sijasta voi toisinaan lisätä jopa 500-kertaista suorituskykyä.
Valinnan vuoksi on suositeltavaa käyttää JOIN-osaa alakyselyyn.
Alakyselyjä tulisi käyttää vararatkaisuna vain, kun et voi käyttää JOIN-operaatiota yllä olevan saavuttamiseksi
Yhteenveto
- Alakyselyt ovat upotettuja kyselyjä toisen kyselyn sisällä. Upotettu kysely tunnetaan sisäisenä kyselynä ja säilökysely ulkoisena kyselynä.
- Alakyselyt ovat helppokäyttöisiä, tarjoavat paljon joustavuutta ja ne voidaan helposti jakaa yksittäisiin loogisiin komponentteihin, jotka muodostavat kyselyn, mikä on erittäin hyödyllinen kyselyjen testauksessa ja virheenkorjauksessa.
- MySQL tukee kolmentyyppisiä alakyselyjä, skalaari-, rivi- ja taulukkoalakyselyjä.
- Skalaariset alakyselyt palauttavat vain yhden rivin ja yhden sarakkeen.
- Rivien alakyselyt palauttavat vain yhden rivin, mutta niillä voi olla useita sarakkeita.
- Taulukon alakyselyt voivat palauttaa useita rivejä ja sarakkeita.
- Alakyselyjä voidaan käyttää myös INSERT-, UPDATE- ja DELETE-kyselyissä.
- Suorituskykyongelmissa, kun on kyse tietojen saamisesta useista taulukoista, on erittäin suositeltavaa käyttää JOIN-tiedostoja alakyselyjen sijaan. Alakyselyjä tulisi käyttää vain hyvästä syystä.