Kursusindhold
Mellemliggende SQL
Mellemliggende SQL
Indlejrede Forespørgsler
Skoleadministrationen er glad for vores seneste resultater og er ivrige efter at komme videre.
Da de begynder deres sommerferie, har vi chancen for at udforske nye metoder og forbedre vores SQL-færdigheder.
Vores fokus vil være på næstede forespørgsler, et nøglekoncept 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 tjekke 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, er der information om den 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:
SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
Vi bruger en WHERE
klausul til at specificere, at afdelingsnavnet skal være til stede i den tabel, vi henter med den indre forespørgsel.
Lad os opdele denne forespørgsel i to separate for at se, hvordan den fungerer. Først, lad os hente navnene på afdelinger med budgetter på $500,000 eller mindre (vores indre forespørgsel):
SELECT name FROM department WHERE budget <= 500000
Nu, med henblik på det opnåede resultat, lad os skrive den anden forespørgsel for at hente information om medarbejderne fra disse afdelinger:
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 trin-for-trin gennemgang:
Den indre forespørgsel henter
names
på de afdelinger, vi har brug for;WHERE
-klausulen kontrollerer, om disse afdelinger er i tabellen fra den indre forespørgsel;Vi får det resultat, vi ønsker.
Her er den grundlæggende syntaks for en indre forespørgsel:
sql
Når du bruger indlejrede forespørgsler, skal du huske disse vigtige punkter:
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
=
,>
,<
,>=
,<=
,<>
;Datatyper: datatypen for den returnerede kolonne skal matche den kolonne, du sammenligner den med, for at undgå fejl;
Optimering: indlejrede forespørgsler kan være langsomme, især hvis de køres for hver række i hovedforespørgslen;
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 almindeligvis med indlejrede forespørgsler til 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 den kolonne, den sammenlignes med?
Tak for dine kommentarer!