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
Mellemliggende SQL

bookIndlejrede Forespørgsler

Skoleadministrationen er tilfreds med vores seneste resultater og ser frem til at komme videre.

Da de begynder deres sommerferie, har vi mulighed for at undersøge nye metoder og forbedre vores SQL-færdigheder.

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

Lad os se på et eksempel fra vores virksomheds database. Efterhånden som virksomheden vokser, har vi tilføjet en ny department-tabel. Dette ændrer, hvordan vores database fungerer.

Lad os undersøge den nye tabels struktur for at se dens rolle i vores database:

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.

Lad os overveje et eksempel, hvor vi bruger indlejrede forespørgsler 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 )
copy

Vi bruger en WHERE-klausul til at angive, at afdelingsnavnet skal være til stede i den tabel, vi henter med den indlejrede forespørgsel.

Lad os opdele denne forespørgsel i to separate for at se, hvordan den fungerer. Først henter vi navnene på afdelinger med budgetter på $500.000 eller mindre (vores indre forespørgsel):

123
SELECT name FROM department WHERE budget <= 500000
copy

Nu, med det opnåede resultat, lad os skrive 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' )
copy

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 kontrollerer, 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 indre forespørgsel:

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

Når du arbejder med indlejrede forespørgsler, skal du være opmærksom på følgende vigtige punkter:

  1. Enkelt resultat i underforespørgsel: sikr, 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 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 kontrollere 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?

Select the correct answer

question mark

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

Select the correct answer

question mark

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

Select the correct answer

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

Awesome!

Completion rate improved to 4

bookIndlejrede Forespørgsler

Stryg for at vise menuen

Skoleadministrationen er tilfreds med vores seneste resultater og ser frem til at komme videre.

Da de begynder deres sommerferie, har vi mulighed for at undersøge nye metoder og forbedre vores SQL-færdigheder.

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

Lad os se på et eksempel fra vores virksomheds database. Efterhånden som virksomheden vokser, har vi tilføjet en ny department-tabel. Dette ændrer, hvordan vores database fungerer.

Lad os undersøge den nye tabels struktur for at se dens rolle i vores database:

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.

Lad os overveje et eksempel, hvor vi bruger indlejrede forespørgsler 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 )
copy

Vi bruger en WHERE-klausul til at angive, at afdelingsnavnet skal være til stede i den tabel, vi henter med den indlejrede forespørgsel.

Lad os opdele denne forespørgsel i to separate for at se, hvordan den fungerer. Først henter vi navnene på afdelinger med budgetter på $500.000 eller mindre (vores indre forespørgsel):

123
SELECT name FROM department WHERE budget <= 500000
copy

Nu, med det opnåede resultat, lad os skrive 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' )
copy

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 kontrollerer, 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 indre forespørgsel:

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

Når du arbejder med indlejrede forespørgsler, skal du være opmærksom på følgende vigtige punkter:

  1. Enkelt resultat i underforespørgsel: sikr, 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 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 kontrollere 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?

Select the correct answer

question mark

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

Select the correct answer

question mark

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

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 1
some-alt