logo

SQL | Underforespørgsler i Fra klausul

SQL underforespørgsler er værdifulde funktioner der giver os at integrere én forespørgsel i en anden og tilføjer mere betydning til at hente og manipulere data på en kompliceret måde. Det bruges til at opsætte midlertidige tabeller eller mellemresultater som efterfølgende bruges af den ydre forespørgsel.

Underforespørgsel i FROM-klausulen

FROM-sætning kan bruges til at angive et underforespørgselsudtryk i SQL. Relationen produceret af underforespørgslen bruges derefter som en ny relation, hvorpå den ydre forespørgsel anvendes til yderligere operationer. Underforespørgsler iFROMklausul bruges, når vi skal oprette et midlertidigt datasæt, der ikke findes i nogen fysisk tabel. Dette kan være yderst nyttigt, når du arbejder med komplekse datasæt.

pseudokode java

Korrelationsvariablerne fra tabellerne, der henvises til i den ydre forespørgsel's FROM-klausul, kan ikke bruges direkte i underforespørgslerne i FROM-klausulen. Nedenfor er angivet to syntakser for brug af Subquery i FROM-sætningen, der bruges i forskellige scenarier.



1. Simpel underforespørgsel iFROMKlausul:

VÆLG kolonne 1 kolonne 2

FROM (SELECT column_x AS C1 column_y FROM table WHERE condition) AS subquery_table

WHERE ydre_tilstand;

2. Underforespørgsel iFROMKlausul medJOIN:

VÆLG kolonne 1 kolonne 2

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

sortering tuples python

JOIN tabel1 PÅ table2.some_column = table1.some_column

HVOR prædikat;

Parametre:

  • Underforespørgsel : Den indre forespørgsel omgivet af parentes. Den henter data, der fungerer som en midlertidig tabel.
  • Alias : Underforespørgslen skal have et alias (subquery_table) der skal refereres til i den ydre forespørgsel.
  • Ydre forespørgsel : Den ydre forespørgsel kan derefter arbejde med denne midlertidige tabel, der er oprettet ved, at underforespørgslen anvender filtre eller udfører yderligere handlinger.

Sådan fungerer underforespørgsler i FROM-klausulen

  • Underforespørgselsvurdering : Underforespørgslen i fra-klausulen evalueres først, og derefter gemmes resultaterne af evalueringen i en ny midlertidig relation. 
  • Ydre forespørgsel : Efter at underforespørgslen eksekverer og returnerer et datasæt, evalueres den ydre forespørgsel ved kun at vælge de tuples fra den midlertidige relation, der opfylder prædikatet i where-sætningen af ​​den ydre forespørgsel.

Eksempel på brug af underforespørgsel i FROM-klausulen

Lad os diskutere nogle eksempler fra den virkelige verden for at forstå, hvordan underforespørgsler i FROM-klausulen fungerer i praksis. Her har vi to borde Instruktør tabel, der indeholder oplysninger om instruktører inklusive deres løn og afdeling. En anden er Afdeling tabel, der indeholder oplysninger om forskellige afdelinger inklusive afdelingens budget.

Instruktør Tabel 

Instruktør-IDNavnAfdelingLøn
44547SmithDatalogi95.000
44541RegningElektrisk55.000
47778AleneHumaniora44000
48147ErikMekanisk80.000
411547BalsamInformationsteknologi65.000
48898JenaCivil50.000

Afdeling Tabel

Afdelingens navnBudget
Datalogi100.000
Elektrisk80.000
Humaniora50.000
Mekanisk40.000
Informationsteknologi90.000
Civil60.000

Eksempel 1: Find alle professorer, hvis løn er større end det gennemsnitlige budget for alle institutter. 

I dette eksempel vil vi bruge en underforespørgsel i FROM-klausulen til at beregne det gennemsnitlige budget for alle afdelinger og derefter foretage sammenligningen med instruktørernes lønninger.

kassen i git

Forespørgsel:   

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

Produktion  

Instruktør-IDNavnAfdelingLøn
44547SmithDatalogi95.000
48147ErikMekanisk80.000

Forklaring:

  • Det gennemsnitlige budget for alle afdelinger fra afdelingsrelationen er 70.000.
  • Erik og Smith er de eneste instruktører i instruktørrelationen, hvis løn er mere end 70.000 og derfor er til stede i outputrelationen. 

Hvorfor bruge underforespørgsler i FROM-klausulen?

Der er forskellige fordele ved at bruge underforespørgsler i FROM-klausulen som angivet nedenfor:

  • Forenkling : De kan forenkle komplekse forespørgsler ved at opdele dem i mindre, mere håndterbare dele. Du behøver ikke at oprette midlertidige tabeller eksplicit i din database.
  • Forbedret læsbarhed : Brug af underforespørgsler i FROM-sætningen gør forespørgslen mere læsbar da den opdeles > Fleksibilitet : Underforespørgsler gør dig at udføre handlinger, der ellers ville være besvær såsom aggregeringer eller filtrering med hensyn til andre datasæt uden det nødvendigt at oprette mellemtabeller.

Konklusion

Underforespørgsler i FROM-klausulen giver os mulighed for at definere  midlertidige resultatsæt der kan bruges af ydre forespørgsler. De gør komplekse SQL-handlinger lettere forbedrer forespørgselslæsbarheden og giver fleksibilitet i datafiltrering og aggregering. At vide hvordan man bruger underforespørgsler inden for FROM-klausulen er en grundlæggende færdighed for hver SQL-praktiker især når de beskæftiger sig med komplekse databaser eller når du skal udføre komplekse dataanalyser.

Opret quiz