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.

Se på den nye tabels struktur for at forstå 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 angive, at afdelingsnavnet skal være til stede i tabellen hentet med den indre forespørgsel.

Opdel denne forespørgsel i to separate 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

Overvej nu det opnåede resultat, og 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 indre forespørgsel henter names på de afdelinger, vi har brug for;

  2. WHERE-klausulen tjekker, om disse afdelinger findes i tabellen fra den indre 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
)

Når du bruger 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 en enkelt værdi. Dette er afgørende for operatorer som =, >, <, >=, <=, <>;

  2. Datatyper: datatypen for den returnerede kolonne skal matche den kolonne, 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