SQL užklausos yra RDBMS CRUD (kurti, skaityti, atnaujinti, ištrinti) dalis. Tačiau kai jūsų programa ar įmonės duomenų bazė auga, išmaniųjų užklausų poreikis sąlyginiams, su reikalavimais susijusiems duomenims gauti tampa būtinybė.

SQL yra gana išsami, apimanti daugybę funkcijų, kurių kiekviena puikiai tinka įvairiems verslo tikslams. Viena iš tokių funkcijų apima antrinių užklausų naudojimą.

Kad kodai būtų veiksmingi ir veiksmingi, galite naudoti SQL kodų antrines užklausas, kad gautumėte duomenis, valdytumėte esamus kintamuosius ir vienu metu pasiektumėte kelis tikslus.

Kas yra SQL antrinės užklausos?

Antrinė užklausa yra įdėta užklausa, kuri veikia kaip parametras kitoje pagrindinėje užklausoje. Antrinė užklausa yra an vidinis paklausimas, o pagrindinė užklausa yra išorinė užklausa.

Antrinė užklausa tariamai pateikia duomenis kaip pagrindinės užklausos argumentą skliausteliuose, o pagrindinė užklausa toliau nuskaito galutinį rezultatą.

Antrinės užklausos yra įterptos į Pasirinkite pareiškime arba

instagram viewer
Kur sąlyga. Tokia struktūra leidžia antrinei užklausai veikti kaip gerai aprašytai duomenų filtravimo sąlygai. Deja, antrinės užklausos gali naudoti tik Grupuoti pagal komandas, o ne Rūšiuoti pagal komandas, nes jos leidžiamos tik pagrindinėje užklausoje.

Susijęs: Viskas, ką reikia žinoti apie SQL GROUP BY pareiškimą

Paprastai kiekvieną antrinę užklausą sudaro vienas stulpelis su Pasirinkite sąlyga. Tačiau yra scenarijų, kai pagrindinėje užklausoje yra keli stulpeliai. Papildoma užklausa gali būti įdėta į kitą antrinę užklausą, todėl ji tampa įdėta antrine užklausa.

Antrinės užklausos griežtumas yra toks:

Pasirinkite stulpelio_pavadinimas iš lentelės, kurioje sąlyga= 
(Pasirinkite sąlyginį_stulpelį IŠ lentelės) kaip slapyvardį;

Pavyzdžiui, tarkime, kad turite šią lentelę:

ID Pirmas vardas Antrasis vardas Agentūros mokestis
1 Jonas Wick 5000
2 Robertas Greimas 4000
3 Steponas Hicks 8000
4 Bobas Marley 1000
5 Marija Ellen 9000

Šioje lentelėje norėdami rasti žmonių, kurie uždirba daugiau nei vidutinis agentūros mokestis, vardus, galite parašyti papildomą užklausą, o ne rašyti kelias kodo eilutes.

Susijęs: Kaip sukurti lentelę SQL

Štai kaip atrodo užklausa:

Pasirinkite * iš agent_details
kur agentūros_mokestis > (pasirinkite vid. (Agentūros_mokestis) iš agent_details);

Komanda prieš > ženklas yra išorinė užklausa, tuo tarpu viskas po > ženklas yra vidinė užklausa.

Vidinė užklausa apskaičiuos vidutinį agentūros mokestį antrinėje užklausoje, o išorinėje užklausoje bus rodomos visos reikšmės, kurios yra didesnės už apskaičiuotą vidutinę vertę.

Kaip naudoti antrines užklausas SQL?

Yra keletas skirtingų būdų, kuriais galite naudoti antrines užklausas SQL.

Antrinės užklausos su kur sąlyga

Viena iš pagrindinių SQL antrinės užklausos struktūrų yra sąlygoje Kur. Tai paprasčiausias būdas apibrėžti, ko ieškote. Teiginys Select grąžina reikšmes pagal antrinės užklausos sąlygą (-as) ir naudoja ją kaip pagrindinės užklausos parametrą.

Užklausos struktūra:

pasirinkite * iš lentelės_pavadinimo
kur stulpelio_pavadinimas = (iš lentelės_pavadinimo pasirinkite stulpelio_pavadinimą);

Paaiškinkime tai pavyzdžiu.

Tarkime, kad norite rasti antrą pagal dydį agentūros mokestį iš agentūros_details lentelės. Norėdami tai padaryti, SQL yra alternatyvių funkcijų; nepaisant to, geriausias būdas yra naudoti antrinę užklausą.

Štai kaip galite apibrėžti antrinę užklausą:

pasirinkite *, maks. (agentūros_mokestis)
iš agent_details
kur agentūros_mokestis < (pasirinkite maks. (Agentūros_mokestis) iš agento_details);

Gautas teiginys jums parodys 8000, kuris yra antras pagal dydį mokestis pateiktoje lentelėje. Kai užklausa vykdoma, antrinė užklausa apskaičiuoja didžiausią vertę iš mokesčių sąrašo. Didžiausia mokesčio suma (9000) išsaugomas atmintyje.

Kai ši dalis apskaičiuojama, apskaičiuojama antroji užklausos dalis, kuri randa antrą pagal dydį mokestį iš lentelės (nuo < naudojamas ženklas). Galutinis rezultatas yra 8000, kuris yra antras pagal dydį mokestis lentelėje.

Papildomos užklausos iš sąlygoje „Nuo“.

Kitas antrinių užklausų variantas yra sąlygos perdavimas sąlyga. Kaip panaši koncepcija, pirmiausia apdorojama vidinė užklausa, o vėliau apdorojama išorinė. Vidinė užklausa filtruos duomenis ir parodys rezultatus, kur ID = 3.

Štai užklausa kaip nuoroda:

pasirinkite a.* iš (
pasirinkite agentūros_mokestis iš agent_details
kur ID= 3) kaip a;

Tai labai paprasta struktūra; tačiau kuo sudėtingesnės jūsų duomenų lentelės, gausite daugiau duomenų eilučių, atitinkančių jūsų sąlygas.

Papildomų užklausų naudojimas su įterpti į teiginį

Jei norite atnaujinti esamą lentelę naujomis duomenų eilutėmis, galite naudoti Įdėkite į pareiškimas. Papildoma užklausa gali būti gana naudinga, jei norite pridėti verčių pagal konkrečias sąlygas.

Užklausos struktūra:

įterpti į lentelės_pavadinimą 
pasirinkite * iš lentelės_pavadinimo
kur stulpelio_pavadinimas = sąlygos;
pasirinkite * iš lentelės_pavadinimo;

Štai pavyzdys, kaip galite naudoti įterpimą į sakinį su antrine užklausa:

įterpti į agent_details
pasirinkite * iš agent_details
kur agentūros_mokestis (1000, 5000);
pasirinkite * iš agento_details;

Kai užklausa vykdoma, sąlygą atitinkančios reikšmės vėl bus įterptos į esamą lentelę. The pasirinkti * nuoroda paima visus stulpelius kartu ir įterpia juos į lentelę agent_details tokią, kokia ji yra. The in Teiginys naudojamas kelioms filtro sąlygoms vienu metu apibrėžti.

Papildomų užklausų naudojimas su atnaujinimo pareiškimu

Yra situacijų, kai vykdydami užklausas norite atnaujinti pagrindines lenteles. Norėdami tai padaryti, galite naudoti atnaujinti sakinį kartu su užklausos komandomis.

Taip parašysite antrinę užklausą, kad atnaujintumėte informaciją lentelėje vienu atveju:

atnaujinti lentelės_pavadinimą 
nustatyti stulpelio_pavadinimas = nauja_vertė
kur stulpelio_pavadinimas =
(iš lentelės_pavadinimo pasirinkite stulpelio_pavadinimas kur = );

Štai pavyzdys, rodantis atnaujinimo teiginio naudojimą:

UPDATE agent_details 
SET agentūros_mokestis = 35 000
KUR agentūros_mokestis =
(SELECT agency_fee FROM agent_details WHERE First_name='Jonas');
pasirinkite * iš agento_details;

Papildoma užklausa filtruos pagal stulpelį agentūros_mokestis ir išskirs eilutę (-es), kurioje (-es) atitiks Vardas Jonas. Toliau vykdoma išorinė užklausa, kai agentūros mokestis atnaujinamas iki 35 000 John Wick.

Galite praeiti a pasirinkti * pareiškimas galutiniams rezultatams patikrinti; pastebėsite, kad John Wick agentūros mokestis atnaujintas iki 35 000, nes yra tik egzempliorius, atitinkantis užklausoje nurodytas sąlygas.

Papildomų užklausų naudojimas su ištrynimo pareiškimu

Kaip ir atnaujinimo pareiškime, kuriame atnaujinate esamos lentelės duomenų eilutes Ištrinti pareiškimas ištrina duomenų eilutę (-es) pagal sąlygą.

Ištrynimo pareiškimo struktūra yra tokia:

ištrinti iš lentelės_pavadinimas, kur kintamojo/stulpelio pavadinimas = 
(iš lentelės_pavadinimo pasirinkite stulpelio_pavadinimas, kur = sąlyga);

Štai pavyzdys:

Ištrinti iš agent_details 
kur Vardas_vardas IN
(Pasirinkite Vardas_vardas iš agento_details kur agentūros_mokestis = 9000);
pasirinkite * iš agento_details;

Papildomų užklausų naudojimas SQL

Papildomos užklausos yra puiki SQL funkcija, kuri gali padėti jums nerašyti begalės nereikalingo kodo eilučių. Kai galite naudoti pagrindines antrinių užklausų funkcijas siūlydami kainas, niekada nenorėsite jaudintis dėl SQL kodavimo sudėtingumo.

Visada geriausia patobulinti savo turimas SQL žinias, kad būtumėte tikri, kad esate žaidimo viršuje. Būkite tikri, SQL apgaulingi lapai gali suteikti jums gerą idėją, kaip vienu žvilgsniu atnaujinti savo pagrindus.

Esminių SQL komandų kodų lapas pradedantiesiems

Norite sužinoti daugiau apie SQL? Įvairių SQL užklausų komandų valdymas yra puikus būdas eiti į priekį.

Skaitykite toliau

DalintisTviteryjeEl. paštas
Susijusios temos
  • Programavimas
  • Programavimas
  • SQL
  • Programavimo įrankiai
Apie autorių
Gaurav Siyal (Paskelbta 35 straipsniai)

Gaurav Siyal turi dvejų metų rašymo patirtį, rašo skaitmeninės rinkodaros įmonėms ir programinės įrangos gyvavimo ciklo dokumentus.

Daugiau iš Gaurav Siyal

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!

Spauskite čia norėdami užsiprenumeruoti