logo

SQL | Podpoizvedbe v členu From

Podpoizvedbe SQL so dragocene funkcije, ki nam omogočajo, da eno poizvedbo vdelamo v drugo, s čimer dodamo večji pomen pridobivanju in obdelavi podatkov na zapleten način. Uporablja se za nastavitev začasnih tabel ali vmesnih rezultatov, ki jih pozneje uporabi zunanja poizvedba.

Podpoizvedba v stavku FROM

Klavzulo FROM lahko uporabite za podajanje izraza podpoizvedbe v SQL. Relacija, ki jo ustvari podpoizvedba, se nato uporabi kot nova relacija, na kateri se za nadaljnje operacije uporabi zunanja poizvedba. Podpoizvedbe vFROMse uporablja, ko moramo ustvariti začasen nabor podatkov, ki ne obstaja v nobeni fizični tabeli. To je lahko zelo koristno pri delu s kompleksnimi nabori podatkov.

java logični niz

Korelacijskih spremenljivk iz tabel, navedenih v klavzuli FROM zunanje poizvedbe, ni mogoče uporabiti neposredno znotraj podpoizvedb v klavzuli FROM. Spodaj sta podani dve sintaksi uporabe podpoizvedbe v klavzuli FROM, ki se uporabljata v različnih scenarijih.



1. Enostavna podpoizvedba vFROMKlavzula:

IZBERI stolpec1 stolpec2

FROM (SELECT column_x AS C1 column_y FROM tabela WHERE pogoj) AS subquery_table

WHERE zunanji_pogoj;

2. Podpoizvedba vFROMKlavzula zJOIN:

IZBERI stolpec1 stolpec2

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

osnove java

PRIDRUŽI tabeli1 ON table2.some_column = table1.some_column

KJE PREDIKAT;

Parametri:

  • Podpoizvedba : notranja poizvedba v oklepajih. Pridobi podatke, ki bodo delovali kot začasna tabela.
  • vzdevek : podpoizvedbi mora biti dodeljen vzdevek (subquery_table), na katere se sklicujete v zunanji poizvedbi.
  • Zunanja poizvedba : Zunanja poizvedba lahko nato deluje s to začasno tabelo, ki jo ustvari podpoizvedba z uporabo filtrov ali izvajanjem nadaljnjih operacij.

Kako delujejo podpoizvedbe v stavku FROM

  • Vrednotenje podpoizvedbe : Najprej se ovrednoti podpoizvedba v stavku from, nato pa se rezultati vrednotenja shranijo v novo začasno relacijo. 
  • Zunanja poizvedba : Ko podpoizvedba izvede in vrne nabor podatkov, se zunanja poizvedba ovrednoti tako, da se izberejo samo tisti nizi iz začasne relacije, ki izpolnjujejo predikat v klavzuli where zunanje poizvedbe.

Primer uporabe podpoizvedbe v stavku FROM

Razpravljajmo o nekaterih primerih iz resničnega sveta, da bomo razumeli, kako podpoizvedbe v stavku FROM delujejo v praksi. Tukaj imamo dve mizi Inštruktor tabela, ki vsebuje informacije o inštruktorjih, vključno z njihovo plačo in oddelkom. Drugi je Oddelek tabela, ki vsebuje informacije o različnih oddelkih, vključno s proračunom oddelka.

Inštruktor Tabela 

ID učiteljaImeOddelekPlača
44547SmithRačunalništvo95000
44541računElektrični55000
47778samaHumanistika44000
48147ErikMehanski80000
411547BalzamInformacijska tehnologija65000
48898JenaCivilno50000

Oddelek Tabela

Ime oddelkaProračun
Računalništvo100000
Električni80000
Humanistika50000
Mehanski40000
Informacijska tehnologija90000
Civilno60000

Primer 1: Poiščite vse profesorje, katerih plača je višja od povprečnega proračuna vseh oddelkov. 

V tem primeru bomo uporabili podpoizvedbo v klavzuli FROM za izračun povprečnega proračuna vseh oddelkov in nato naredili primerjavo s plačami inštruktorjev.

vlc media player prenos youtube

poizvedba:   

mysql ustvari uporabnika
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;

Izhod  

ID učiteljaImeOddelekPlača
44547SmithRačunalništvo95000
48147ErikMehanski80000

Pojasnilo:

  • Povprečni proračun vseh oddelkov iz relacije oddelkov je 70000.
  • Erik in Smith sta edina inštruktorja v inštruktorski relaciji, katerih plača je več kot 70000 in sta zato prisotna v izhodni relaciji. 

Zakaj uporabljati podpoizvedbe v stavku FROM?

Obstaja več prednosti uporabe podpoizvedb v klavzuli FROM, kot je navedeno spodaj:

  • Poenostavitev : Lahko poenostavijo zapletene poizvedbe tako, da jih razdelijo na manjše, bolj obvladljive dele. Začasnih tabel vam ni treba izrecno ustvariti v vaši bazi podatkov.
  • Izboljšana berljivost : Uporaba podpoizvedb v klavzuli FROM naredi poizvedbo bolj berljivo saj loči > Prilagodljivost : Podpoizvedbe vam omogočajo izvajanje operacij, ki bi sicer bile neprimerne na primer združevanja ali filtriranje glede na druge nize podatkov, brez potrebe po ustvarjanju vmesnih tabel.

Zaključek

Podpoizvedbe v klavzuli FROM nam omogočajo definiranje  začasni nizi rezultatov ki se lahko uporabijo z zunanjimi poizvedbami. Olajšajo zapletene operacije SQL, izboljšajo berljivost poizvedb in zagotavljajo prilagodljivost pri filtriranju in združevanju podatkov. Poznavanje kako uporabiti podpoizvedbe znotraj klavzule FROM je osnovna veščina vsakega praktika SQL zlasti ko imate opravka s kompleksnimi bazami podatkov ali ko morate izvesti kompleksno analizo podatkov.

Ustvari kviz