logo

SQL | Papildomos užklausos iš sąlygos

SQL antrinės užklausos yra vertingos funkcijos, leidžiančios mums įterpti vieną užklausą į kitą, o tai suteikia daugiau svarbos duomenų gavimui ir manipuliavimui sudėtingu būdu. Jis naudojamas nustatant laikinąsias lenteles arba tarpinius rezultatus, kurie vėliau bus naudojami išorinėje užklausoje.

Papildoma užklausa sąlygoje FROM

Išlyga FROM gali būti naudojama antrinės užklausos išraiškai nurodyti SQL. Po to antrinės užklausos sukurtas ryšys naudojamas kaip naujas ryšys, kuriam išorinė užklausa taikoma tolesnėms operacijoms. Papildomos užklausosFROMsąlyga naudojama, kai reikia sukurti laikiną duomenų rinkinį, kurio nėra jokioje fizinėje lentelėje. Tai gali būti labai naudinga dirbant su sudėtingais duomenų rinkiniais.

seleno pamoka java

Koreliacijos kintamieji iš lentelių, nurodytų išorinės užklausos sąlygoje FROM, negali būti tiesiogiai naudojami papildomose užklausose FROM. Toliau pateiktos dvi antrinės užklausos naudojimo išlygoje FROM sintaksės, naudojamos skirtinguose scenarijuose.



1. Paprasta antrinė užklausaFROMIšlyga:

PASIRINKTI 1 stulpelį2 stulpelis

FROM (SELECT stulpelis_x AS C1 stulpelis_y FROM lentelės WHERE sąlyga) AS antrinės užklausos_lentelė

WHERE išorinė_sąlyga;

pagauk ir pabandyk java

2. Papildoma užklausaFROMIšlyga suJOIN:

PASIRINKTI 1 stulpelį2 stulpelis

FROM (SELECT column_x AS C1 column_y FROM table WHERE PREDICATE_X) AS table2

PRISIJUNGTI 1 lentelę PRIE lentelės2.some_column = lentelė1.some_column

KUR PREDIKATAS;

linux make komandą

Parametrai:

  • Antrinė užklausa : vidinė užklausa yra skliausteliuose. Jis nuskaito duomenis, kurie veiks kaip laikina lentelė.
  • Pseudonimas : antrinei užklausai turi būti suteiktas slapyvardis (subquery_table) turi būti nurodyta išorinėje užklausoje.
  • Išorinė užklausa : Tada išorinė užklausa gali veikti su šia laikina lentele, sukurta antrinėje užklausoje taikant filtrus arba atliekant tolesnes operacijas.

Kaip veikia papildomos užklausos sąlygoje FROM

  • Papildomos užklausos įvertinimas : Pirmiausia įvertinama antrinė užklausa iš sakinio, o tada vertinimo rezultatai išsaugomi naujame laikinajame ryšyje. 
  • Išorinė užklausa : Po to, kai antrinė užklausa įvykdo ir grąžina duomenų rinkinį, išorinė užklausa įvertinama, iš laikinojo ryšio pasirenkant tik tas eilutes, kurios atitinka predikatą išorinės užklausos kur sakinyje.

Papildomos užklausos naudojimo FROM sąlygoje pavyzdys

Leiskite aptarti kai kuriuos realaus pasaulio pavyzdžius, kad suprastumėte, kaip praktiškai veikia papildomos užklausos iš FROM. Čia turime dvi lenteles Instruktorius lentelė, kurioje pateikiama informacija apie instruktorius, įskaitant jų atlyginimą ir skyrių. Kitas yra skyrius lentelė, kurioje pateikiama informacija apie skirtingus skyrius, įskaitant skyriaus biudžetą.

Instruktorius Lentelė 

Instruktoriaus IDVardasskyriusAtlyginimas
44547SmithasInformatika95 000
44541BillElektros55 000
47778VienišasHumanitariniai mokslai44 000
48147ErikasMechaninis80 000
411547BalzamasInformacinės technologijos65 000
48898JenaCivilinis50 000

skyrius Lentelė

Skyriaus pavadinimasBiudžetas
Informatika100 000
Elektros80 000
Humanitariniai mokslai50 000
Mechaninis40 000
Informacinės technologijos90 000
Civilinis60 000

1 pavyzdys: Raskite visus profesorius, kurių atlyginimas yra didesnis nei vidutinis visų katedrų biudžetas. 

Šiame pavyzdyje naudosime papildomos užklausos FROM sąlygoje, kad apskaičiuotume vidutinį visų skyrių biudžetą ir palygintume su instruktorių atlyginimais.

Užklausa:   

pandos ir numpy
SELECT I.InstructorID I.Name I.Department I.Salary  
FROM (SELECT AVG(Budget) AS averageBudget FROM Department) AS BUDGET
Instructor AS I
WHERE I.Salary > BUDGET.averageBudget;

Išvestis  

Instruktoriaus IDVardasskyriusAtlyginimas
44547SmithasInformatika95 000
48147ErikasMechaninis80 000

Paaiškinimas:

  • Vidutinis visų skyrių biudžetas iš departamento santykio yra 70 000.
  • Erikas ir Smithas yra vieninteliai instruktoriai, kurių atlyginimas yra didesnis nei 70 000, todėl jie yra susiję su rezultatu. 

Kodėl sąlygoje FROM naudoti papildomas užklausas?

Yra įvairių privalumų naudojant papildomos užklausos sąlygoje FROM, kaip nurodyta toliau:

  • Supaprastinimas : jie gali supaprastinti sudėtingas užklausas, suskirstydami jas į mažesnes, lengviau valdomas dalis. Jums nereikia tiesiogiai kurti laikinų lentelių savo duomenų bazėje.
  • Patobulintas skaitomumas : naudojant antrines užklausas išlygoje FROM užklausa paverčiama skaitomesnė nes ji dalijama > Lankstumas : antrinės užklausos leidžia atlikti operacijas, kurias kitaip būtų nepatogios, pvz., sujungimas arba filtravimas atsižvelgiant į kitus duomenų rinkinius, nekuriant tarpinių lentelių.

Išvada

Papildomos užklausos sąlygoje FROM leidžia apibrėžti  laikini rezultatų rinkiniai kuriuos gali panaudoti išorinės užklausos. Jie palengvina sudėtingas SQL operacijas, pagerina užklausų skaitymą ir suteikia lankstumo filtruojant ir kaupiant duomenis. Žinojimas, kaip naudoti antrines užklausas pagal FROM sąlygą, yra pagrindinis kiekvieno SQL specialisto įgūdis, ypač kai dirbate su sudėtingomis duomenų bazėmis arba kai turite atlikti sudėtingą duomenų analizę.

Sukurti viktoriną