SQL-päringud on RDBMS-i CRUD-i põhiosa (loo, loe, värskenda, kustuta). Kuid kui teie rakendus või ettevõtte andmebaas kasvab, muutub vajadus intelligentsete päringute järele tingimuslike, nõuetekohaste andmete toomiseks.
SQL on suhteliselt kõikehõlmav, hõlmates paljusid funktsioone, millest igaüks sobib hästi erinevateks ärilisteks kasutusteks. Üks selline funktsioon hõlmab alampäringute kasutamist.
Koodide tõhusaks ja tõhusaks muutmiseks saate kasutada SQL-koodide alampäringuid andmete toomiseks, olemasolevate muutujatega manipuleerimiseks ja mitme eesmärgi saavutamiseks korraga.
Mis on SQL-i alampäringud?
Alampäring on pesastatud päring, mis töötab parameetrina mõnes teises põhipäringus. Alampäring on an sisemine päring, samas kui peamine päring on väline päring.
Alampäring väidetavalt tagastab andmed põhipäringu sulgudes oleva argumendina, samas kui põhipäring hangib lisaks lõpptulemuse.
Alampäringud on manustatud Valige avalduses või Kus klausel. Selline struktuur võimaldab alampäringul käituda hästi kirjeldatud andmete filtreerimise tingimusena. Kahjuks saavad alampäringud kasutada ainult
Grupeeri käske ja mitte Telli järgi käsud, kuna need on lubatud ainult põhipäringus.Seotud: Kõik, mida pead teadma SQL GROUP BY avalduse kohta
Tavaliselt sisaldab iga alampäring ühte veergu, millel on Valige klausel. Siiski on stsenaariume, kus põhipäringul on mitu veergu. Alampäringu saab pesastada teise alampäringu sisse, muutes selle pesastavaks alampäringuks.
Alampäringu kitsendus on järgmine:
Valige tabelist veeru_nimi, kus tingimus=
(VALI tingimus_veerg tabelist) varjunimena;
Oletame näiteks, et teil on järgmine tabel:
ID | Eesnimi | Teine nimi | Agentuuri_tasu |
1 | John | Wick | 5000 |
2 | Robert | Graham | 4000 |
3 | Stephen | Hicks | 8000 |
4 | Bob | Marley | 1000 |
5 | Maarja | Ellen | 9000 |
Selles tabelis saate mitme koodirea kirjutamise asemel kirjutada alampäringu, et tuua välja inimeste nimed, kes teenivad üle keskmise agentuuritasu.
Seotud: Kuidas SQL-is tabelit luua
Päring näeb välja järgmine:
Valige * agent_details hulgast
kus Agency_Fee > (valige avg (Agency_Fee) alt agent_details);
Käsk enne > märk on välimine päring, samas kui kõik pärast > märk on sisemine päring.
Sisemine päring arvutab keskmise agentuuritasu alampäringu sees ja välimine päring näitab kõiki väärtusi, mis on suuremad kui arvutatud keskmine väärtus.
Kuidas kasutada SQL-is alampäringuid?
SQL-is saate alampäringuid kasutada mitmel erineval viisil.
Alampäringud Kus-klausliga
Üks SQL-i alampäringu põhistruktuure asub klausli Kus sees. See on lihtsaim viis otsitava määratlemiseks. Select-lause tagastab väärtused vastavalt alampäringu tingimus(te)le ja kasutab seda põhipäringu parameetrina.
Päringu struktuur:
vali * tabeli_nimi alt
kus veeru_nimi = (vali tabeli_nimi veeru_nimi);
Selgitame seda näitega.
Oletame, et soovite tabelist agency_details leida suuruselt teise agentuuritasu. Selleks on SQL-is alternatiivsed funktsioonid; Sellegipoolest on parim viis kasutada alampäringut.
Alampäringu saate määratleda järgmiselt.
vali *, max (agendi_tasu)
agent_details'ist
kus Agentuuri_tasu < (valige max (Agentuuri_tasu) agent_details alt);
Saadud avaldus näitab teile 8000, mis on antud tabelis suuruselt teine tasu. Kui päring töötab, arvutab alampäring tasu loendist maksimaalse väärtuse. Kõrgeim tasusumma (9000) salvestatakse mällu.
Kui see osa on välja arvutatud, arvutatakse päringu teine osa, mis leiab tabelist suuruselt teise tasu (alates < märki kasutatakse). Lõpptulemus on 8000, mis on tabelis suuruselt teine tasu.
Alampäringud lähteklauslis
Teine alampäringu variatsioon on tingimuse edastamine alates klausel. Sarnase kontseptsioonina töödeldakse kõigepealt sisemist päringut ja seejärel välist päringut. Sisemine päring filtreerib andmed ja näitab tulemusi, kus ID = 3.
Siin on viidepäring:
vali a.* hulgast (
valige agent_details alt agentuuritasu
kus ID= 3) kui a;
See on väga elementaarne struktuur; aga mida keerukamad on teie andmetabelid, saate rohkem andmete ridu, mis vastavad teie tingimustele.
Alampäringute kasutamine koos lausega Lisamine
Kui soovite värskendada olemasolevat tabelit mõne uue andmeridaga, saate kasutada Sisestage avaldus. Alampäring võib osutuda üsna kasulikuks, kui soovite lisada väärtusi konkreetse(te) tingimus(te) alusel.
Päringu struktuur:
sisestage tabeli_nimi
vali * tabeli_nimi alt
kus veeru_nimi = tingimused;
vali * tabeli_nimi;
Siin on näide selle kohta, kuidas saate alampäringuga lausesse lisamist kasutada:
sisestage agendi_detailidesse
valige * agent_details hulgast
kus agentuuri_tasu (1000, 5000);
vali * agendi_detailidest;
Kui päring on käivitunud, lisatakse tingimusele vastavad väärtused uuesti olemasolevasse tabelisse. The vali * viide kogub kõik veerud kokku ja lisab selle tabelisse agent_details sellisel kujul, nagu see on. The sisse lauset kasutatakse mitme filtritingimuse korraga määratlemiseks.
Värskendusavaldusega alampäringute kasutamine
On olukordi, kus soovite päringute käitamise ajal värskendada aluseks olevaid tabeleid. Selleks võite kasutada värskendada lause koos päringukäskudega.
Tabeli teabe värskendamiseks ühes eksemplaris kirjutate alampäringu järgmiselt:
värskendage tabeli_nimi
määra veeru_nimi = uus_väärtus
kus veeru_nimi =
(vali tabeli_nimi veeru_nimi kus = );
Siin on näide värskenduse avalduse kasutamise kohta:
VÄRSKENDAGE agent_details
SET agentuuritasu = 35000
KUS agentuuri_tasu =
(SELECT agentuuri_tasu FROM agent_details WHERE Eesnimi='John');
vali * agendi_detailidest;
Alampäring filtreerib veeru agentuuri_tasu järgi ja toob välja read, kus eesnimi vastab John. Järgmisena täidetakse välimine päring, kus John Wicki agentuuritasu uuendatakse 35 000-ni.
Saate läbida a vali * avaldus lõpptulemuste kontrollimiseks; märkate, et John Wicki agentuuritasu on uuendatud 35 000-le, kuna päringus määratletud tingimustele vastab ainult eksemplar.
Alampäringute kasutamine koos kustutamisavaldusega
Täpselt nagu värskendusavaldus, mille puhul värskendate olemasoleva tabeli andmeridu, kustutada avaldus kustutab tingimusel põhineva andmerea(d).
Kustutuslause struktuur on järgmine:
kustuta tabeli_nimi, kus muutuja/veeru nimi =
(valige tabeli_nimi veeru_nimi kus = tingimus);
Siin on näide:
Kustuta agent_details alt
kus Eesnimi IN
(valige agent_details alt Eesnimi, kus agentuuri_tasu = 9000);
vali * agendi_detailidest;
Alampäringute kasutamine SQL-is
Alampäringud on SQL-i suurepärane funktsioon, mis võib säästa teid lõputute mittevajalike koodiridade kirjutamisest. Kui saate pakkumise tegemiseks kasutada alampäringute põhifunktsioone, ei taha te kunagi muretseda SQL-i kodeerimise keerukuse pärast.
Alati on kõige parem täiustada oma olemasolevaid SQL-teadmisi, et olla alati oma mänguga kursis. Võite olla kindel, SQL-i petulehed annavad teile üheainsa pilguga hea idee, kuidas oma põhitõdesid värskendada.
Kas soovite SQL-i kohta rohkem teada saada? Erinevate SQL-i päringukäskude haldamine on suurepärane viis edasiliikumiseks.
Loe edasi
- Programmeerimine
- Programmeerimine
- SQL
- Programmeerimistööriistad
Gaurav Siyal on kaheaastane kirjutamiskogemus, kirjutades mitmetele digitaalse turunduse ettevõtetele ja tarkvara elutsükli dokumentidele.
Liituge meie uudiskirjaga
Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!
Tellimiseks klõpsake siin