Kursinnhold
Videregående SQL
Videregående SQL
Nestede Spørringer
Skoleadministrasjonen er fornøyd med våre nylige prestasjoner og er ivrige etter å gå videre.
Når de begynner sin sommerferie, har vi sjansen til å utforske nye metoder og forbedre våre SQL-ferdigheter.
Vårt fokus vil være på nestede spørringer, et nøkkelkonsept i SQL.
La oss se på et eksempel fra vår bedriftsdatabase. Etter hvert som selskapet vokser, har vi lagt til en ny department
-tabell. Dette endrer hvordan databasen vår fungerer.
La oss sjekke ut den nye tabellens struktur for å se dens rolle i databasen vår:
Den nye tabellen inneholder avdelinger, deres typer, og budsjetter. Og i employee
-tabellen, som du kanskje husker, finnes det informasjon om avdelingen hver ansatt tilhører.
La oss vurdere et eksempel der vi bruker nestede spørringer for å hente de ansatte som jobber i avdelinger med budsjetter på $500,000 eller mindre:
SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
Vi bruker en WHERE
-klausul for å spesifisere at avdelingsnavnet skal være til stede i tabellen vi henter med den indre spørringen.
La oss dele opp denne spørringen i to separate for å se hvordan den fungerer. Først, la oss hente navnene på avdelinger med budsjetter på $500,000 eller mindre (vår indre spørring):
SELECT name FROM department WHERE budget <= 500000
Nå, med tanke på det oppnådde resultatet, la oss skrive den andre spørringen for å hente informasjon om de ansatte fra disse avdelingene:
SELECT * FROM employees WHERE department IN ( 'Marketing', 'Human Resources', 'Finance', 'Customer Service', 'Legal' )
Resultatet av denne spørringen vil være det samme som den første spørringen.
Her er en trinnvis gjennomgang:
Den indre spørringen henter
names
på avdelingene vi trenger;WHERE
-klausulen sjekker om disse avdelingene er i tabellen fra den indre spørringen;Vi får resultatet vi ønsker.
Her er den grunnleggende syntaksen for en indre spørring:
sql
Når du bruker nestede spørringer, husk disse viktige punktene:
Enkeltresultat i underordnet spørring: sørg for at den nestede spørringen returnerer kun én kolonne. Hvis den brukes i en sammenligning, bør den ideelt sett returnere en enkelt verdi. Dette er avgjørende for operatorer som
=
,>
,<
,>=
,<=
,<>
;Datatyper: datatypen til den returnerte kolonnen bør samsvare med kolonnen du sammenligner den med, for å unngå feil;
Optimalisering: nestede spørringer kan være trege, spesielt hvis de kjøres for hver rad i hovedspørringen;
Bruk av IN-operatoren: nestede spørringer bruker ofte
IN
-operatoren for å sjekke verdier i et delsett. Du kan også bruke sammenligningsoperatorer for mer komplekse betingelser.
1. Hva er en nestet spørring i SQL?
2. Hvilken SQL-operator brukes ofte med nestede spørringer for å sjekke verdier i et delsett?
3. Hvorfor er det viktig at datatypen til kolonnen som returneres av en nestet spørring samsvarer med kolonnen den sammenlignes med?
Takk for tilbakemeldingene dine!