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 ID | Vardas | skyrius | Atlyginimas |
|---|---|---|---|
| 44547 | Smithas | Informatika | 95 000 |
| 44541 | Bill | Elektros | 55 000 |
| 47778 | Vienišas | Humanitariniai mokslai | 44 000 |
| 48147 | Erikas | Mechaninis | 80 000 |
| 411547 | Balzamas | Informacinės technologijos | 65 000 |
| 48898 | Jena | Civilinis | 50 000 |
skyrius Lentelė
| Skyriaus pavadinimas | Biudžetas |
|---|---|
| Informatika | 100 000 |
| Elektros | 80 000 |
| Humanitariniai mokslai | 50 000 |
| Mechaninis | 40 000 |
| Informacinės technologijos | 90 000 |
| Civilinis | 60 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 ID | Vardas | skyrius | Atlyginimas |
|---|---|---|---|
| 44547 | Smithas | Informatika | 95 000 |
| 48147 | Erikas | Mechaninis | 80 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ą