Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Indlejrede Forespørgsler | Indlejrede Underforespørgsler
Intermediær SQL

Indlejrede Forespørgsler

Stryg for at vise menuen

Skoleadministrationen er tilfreds med dine seneste resultater og ser frem til at fortsætte.

Mens de begynder deres sommerferie, har du mulighed for at udforske nye metoder og forbedre dine SQL-færdigheder.

Dit fokus vil være på indlejrede forespørgsler, et centralt begreb i SQL.

Note
Definition

Indlejrede forespørgsler, eller indlejrede subforespørgsler, er integrerede komponenter i SQL, hvor en forespørgsel findes inden i en anden forespørgsel. Disse konstruktioner muliggør forskellige operationer såsom datafiltrering, beregning og hentning, hvilket ofte kræver integration af subforespørgsler.

Se på et eksempel fra virksomhedens database. Efterhånden som virksomheden vokser, er der blevet tilføjet en ny department-tabel. Dette ændrer, hvordan vores database fungerer.

Undersøg den nye tabels struktur for at se dens rolle i databasen:

Den nye tabel indeholder afdelinger, deres typer og budgetter. Og i employee-tabellen, som du måske husker, findes der information om hvilken afdeling hver medarbejder tilhører.

Overvej et eksempel, hvor indlejrede forespørgsler bruges til at hente de medarbejdere, der arbejder i afdelinger med budgetter på $500.000 eller mindre:

1234567
SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )

En WHERE-klausul bruges til at specificere, at afdelingsnavnet skal være til stede i tabellen hentet med den indre forespørgsel.

Opdel denne forespørgsel i to separate forespørgsler for at se, hvordan den fungerer. Først hentes navnene på afdelinger med budgetter på $500.000 eller mindre (indre forespørgsel):

123
SELECT name FROM department WHERE budget <= 500000

Nu, med det opnåede resultat, skriv den anden forespørgsel for at hente oplysninger om medarbejderne fra disse afdelinger:

12345
SELECT * FROM employees WHERE department IN ( 'Marketing', 'Human Resources', 'Finance', 'Customer Service', 'Legal' )

Resultatet af denne forespørgsel vil være det samme som den første forespørgsel.

Her er en trinvis gennemgang:

  1. Den indlejrede forespørgsel henter names på de afdelinger, vi har brug for;

  2. WHERE-klausulen kontrollerer, om disse afdelinger findes i tabellen fra den indlejrede forespørgsel;

  3. Vi får det ønskede resultat.

Her er den grundlæggende syntaks for en indlejret forespørgsel:

SELECT columns
FROM table_1
WHERE column_name IN (
  SELECT column
  FROM table_2
  other clauses
)

Ved brug af indlejrede forespørgsler skal du være opmærksom på følgende vigtige punkter:

  1. Enkelt resultat i underforespørgsel: sørg for, at den indlejrede forespørgsel kun returnerer én kolonne. Hvis den bruges i en sammenligning, bør den ideelt set returnere én værdi. Dette er afgørende for operatorer som =, >, <, >=, <=, <>;

  2. Datatyper: datatypen for den returnerede kolonne skal matche kolonnen, du sammenligner med, for at undgå fejl;

  3. Optimering: indlejrede forespørgsler kan være langsomme, især hvis de køres for hver række i hovedforespørgslen;

  4. Brug af IN-operatoren: indlejrede forespørgsler bruger ofte IN-operatoren til at tjekke for værdier i et delmængde. Du kan også bruge sammenligningsoperatorer til mere komplekse betingelser.

1. Hvad er en indlejret forespørgsel i SQL?

2. Hvilken SQL-operator bruges ofte sammen med indlejrede forespørgsler for at kontrollere værdier i et delmængde?

3. Hvorfor er det vigtigt, at datatypen for kolonnen, der returneres af en indlejret forespørgsel, matcher kolonnen, den sammenlignes med?

question mark

Hvad er en indlejret forespørgsel i SQL?

Vælg det korrekte svar

question mark

Hvilken SQL-operator bruges ofte sammen med indlejrede forespørgsler for at kontrollere værdier i et delmængde?

Vælg det korrekte svar

question mark

Hvorfor er det vigtigt, at datatypen for kolonnen, der returneres af en indlejret forespørgsel, matcher kolonnen, den sammenlignes med?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 1

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 2. Kapitel 1
some-alt