logo

SQL | Underspørringer i Fra-klausul

SQL underspørringer er verdifulle funksjoner som gjør  oss i stand til å bygge inn ett søk i et annet som legger til mer vikt til henting og manipulering data på en komplisert måte. Den brukes til å konfigurere midlertidige tabeller eller mellomresultater som etter brukes av det ytre søket.

Underspørring i FROM-klausulen

FROM-ledd kan brukes til å spesifisere et underspørringsuttrykk i SQL. Relasjonen produsert av underspørringen brukes deretter som en ny relasjon som den ytre spørringen brukes på for videre operasjoner. Underspørringer iFROMklausul brukes når vi trenger å lage et midlertidig datasett som ikke finnes i noen fysisk tabell. Dette kan være svært nyttig når du arbeider med komplekse datasett.

java date nå

Korrelasjonsvariablene fra tabellene referert til i den ytre spørringens FROM-ledd kan ikke brukes direkte i underspørringene i FROM-leddet. Nedenfor er gitt to syntakser for bruk av Subquery i FROM-klausulen som brukes i forskjellige scenarier.



1. Enkel underspørring iFROMKlausul:

VELG kolonne 1 kolonne 2

FROM (SELECT column_x AS C1 column_y FROM-tabell WHERE-betingelse) AS subquery_table

WHERE ytre_tilstand;

2. Underspørring iFROMKlausul medJOIN:

VELG kolonne 1 kolonne 2

FRA (VELG kolonne_x AS C1 kolonne_y FRA tabell WHERE PREDIKAT_X) SOM tabell2

java få gjeldende tid

JOIN tabell1 PÅ tabell2.noen_kolonne = tabell1.noen_kolonne

HVOR PREDIKAT;

Parametere:

  • Undersøk : Den indre spørringen i parentes. Den henter data som vil fungere som en midlertidig tabell.
  • Alias : Underspørringen må gis et alias (subquery_table) som skal refereres til i den ytre spørringen.
  • Ytre spørring : Den ytre spørringen kan deretter fungere med denne midlertidige tabellen opprettet ved at underspørringen bruker filtre eller utfører ytterligere operasjoner.

Hvordan underspørringer i FROM-klausulen fungerer

  • Undersøkevaluering : Underspørringen i fra-klausulen evalueres først og deretter lagres resultatene av evalueringen i en ny midlertidig relasjon. 
  • Ytre spørring : Etter at underspørringen kjører og returnerer et datasett, blir den ytre spørringen evaluert ved å velge bare de tuplene fra den midlertidige relasjonen som tilfredsstiller predikatet i where-leddet til den ytre spørringen.

Eksempel på bruk av underspørring i FROM-klausulen

La oss diskutere noen eksempler fra den virkelige verden for å forstå hvordan underspørringer i FROM-klausulen fungerer i praksis. Her har vi to bord Instruktør tabell som inneholder informasjon om instruktører inkludert deres lønn og avdeling. Den andre er Avdeling tabell som inneholder informasjon om ulike avdelinger inkludert avdelingens budsjett.

Instruktør Bord 

Instruktør-IDNavnAvdelingLønn
44547SmithDatavitenskap95 000
44541RegningElektrisk55 000
47778AleneHumaniora44000
48147ErikMekanisk80 000
411547BalsamInformasjonsteknologi65 000
48898JenaSivil50 000

Avdeling Bord

AvdelingsnavnBudsjett
Datavitenskap100 000
Elektrisk80 000
Humaniora50 000
Mekanisk40 000
Informasjonsteknologi90 000
Sivil60 000

Eksempel 1: Finn alle professorer hvis lønn er høyere enn gjennomsnittsbudsjettet for alle avdelingene. 

I dette eksemplet vil vi bruke en underspørring i FROM-klausulen for å beregne gjennomsnittlig budsjett for alle avdelinger og deretter gjøre sammenligningen med lønnen til instruktører.

kassen i git

Spørsmål:   

binært tre java
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;

Produksjon  

Instruktør-IDNavnAvdelingLønn
44547SmithDatavitenskap95 000
48147ErikMekanisk80 000

Forklaring:

  • Gjennomsnittlig budsjett for alle avdelinger fra avdelingsrelasjonen er 70 000.
  • Erik og Smith er de eneste instruktørene i instruktørrelasjonen som har en lønn på over 70 000 og derfor er tilstede i outputrelasjonen. 

Hvorfor bruke underspørringer i FROM-klausulen?

Det er forskjellige fordeler ved å bruke underspørringer i FROM-klausulen som gitt nedenfor:

  • Forenkling : De kan forenkle komplekse spørringer ved å dele dem opp i mindre mer håndterbare deler. Du trenger ikke å opprette midlertidige tabeller eksplisitt i databasen din.
  • Forbedret lesbarhet : Ved å bruke undersøk i FROM-klausulen gjør søket mer lesbart siden det deler > Fleksibilitet : Med underspørringer kan du utføre operasjoner som ellers ville være ubeleilig som aggregeringer eller filtrering med hensyn til andre datasett uten behovet å lage mellomtabeller.

Konklusjon

Undersøk i FROM-klausulen gjør det mulig for oss å definere  midlertidige resultatsett som kan brukes av ytre søk. De gjør komplekse SQL-operasjoner enklere forbedrer søklesbarheten og gir fleksibilitet i datafiltrering og aggregering. Å vite hvordan du bruker underspørringer i FROM-klausulen er en grunnleggende ferdighet for hver SQL-utøver spesielt når du har å gjøre med komplekse databaser eller når du må utføre komplekse dataanalyser.

Lag quiz