Nestede Spørringer
Skoleadministrasjonen er fornøyd med våre siste prestasjoner og ser frem til videre fremgang.
Når de nå tar sommerferie, har vi mulighet til å utforske nye metoder og forbedre våre SQL-ferdigheter.
Vårt fokus vil være på nøstede spørringer, et sentralt konsept i SQL.
Nøstede spørringer, eller nøstede underforespørsler, er integrerte komponenter i SQL der en spørring er plassert innenfor en annen spørring. Disse konstruksjonene muliggjør ulike operasjoner som datafiltrering, beregning og uthenting, og krever ofte bruk av underforespørsler.
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 undersøke den nye tabellens struktur for å se hvilken rolle den har i databasen:
Den nye tabellen inneholder avdelinger, deres typer og budsjetter. Og i employee-tabellen, som du kanskje husker, finnes det informasjon om hvilken avdeling hver ansatt tilhører.
La oss se på et eksempel der vi bruker nøstede spørringer for å hente de ansatte som jobber i avdelinger med budsjetter på $500 000 eller mindre:
1234567SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
Vi bruker en WHERE-setning for å angi 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 henter vi navnene på avdelinger med budsjetter på $500 000 eller mindre (vår indre spørring):
123SELECT name FROM department WHERE budget <= 500000
Nå, med det oppnådde resultatet, skriver vi den andre spørringen for å hente informasjon om de ansatte fra disse avdelingene:
12345SELECT * 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:
-
Indre spørring henter
namespå avdelingene vi trenger; -
WHERE-klausulen sjekker om disse avdelingene finnes i tabellen fra den indre spørringen; -
Vi får ønsket resultat.
Her er grunnleggende syntaks for en indre spørring:
SELECT columns
FROM table_1
WHERE column_name IN (
SELECT column
FROM table_2
other clauses
)
Når du bruker nestede spørringer, bør du huske på følgende viktige punkter:
-
Enkeltresultat i underforespørsel: sørg for at den nestede spørringen kun returnerer én kolonne. Hvis den brukes i en sammenligning, bør den ideelt sett returnere én verdi. Dette er avgjørende for operatorer som
=,>,<,>=,<=,<>; -
Datatyper: datatypen til den returnerte kolonnen bør samsvare med kolonnen du sammenligner 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 sammen 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!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Fantastisk!
Completion rate forbedret til 4
Nestede Spørringer
Sveip for å vise menyen
Skoleadministrasjonen er fornøyd med våre siste prestasjoner og ser frem til videre fremgang.
Når de nå tar sommerferie, har vi mulighet til å utforske nye metoder og forbedre våre SQL-ferdigheter.
Vårt fokus vil være på nøstede spørringer, et sentralt konsept i SQL.
Nøstede spørringer, eller nøstede underforespørsler, er integrerte komponenter i SQL der en spørring er plassert innenfor en annen spørring. Disse konstruksjonene muliggjør ulike operasjoner som datafiltrering, beregning og uthenting, og krever ofte bruk av underforespørsler.
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 undersøke den nye tabellens struktur for å se hvilken rolle den har i databasen:
Den nye tabellen inneholder avdelinger, deres typer og budsjetter. Og i employee-tabellen, som du kanskje husker, finnes det informasjon om hvilken avdeling hver ansatt tilhører.
La oss se på et eksempel der vi bruker nøstede spørringer for å hente de ansatte som jobber i avdelinger med budsjetter på $500 000 eller mindre:
1234567SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
Vi bruker en WHERE-setning for å angi 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 henter vi navnene på avdelinger med budsjetter på $500 000 eller mindre (vår indre spørring):
123SELECT name FROM department WHERE budget <= 500000
Nå, med det oppnådde resultatet, skriver vi den andre spørringen for å hente informasjon om de ansatte fra disse avdelingene:
12345SELECT * 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:
-
Indre spørring henter
namespå avdelingene vi trenger; -
WHERE-klausulen sjekker om disse avdelingene finnes i tabellen fra den indre spørringen; -
Vi får ønsket resultat.
Her er grunnleggende syntaks for en indre spørring:
SELECT columns
FROM table_1
WHERE column_name IN (
SELECT column
FROM table_2
other clauses
)
Når du bruker nestede spørringer, bør du huske på følgende viktige punkter:
-
Enkeltresultat i underforespørsel: sørg for at den nestede spørringen kun returnerer én kolonne. Hvis den brukes i en sammenligning, bør den ideelt sett returnere én verdi. Dette er avgjørende for operatorer som
=,>,<,>=,<=,<>; -
Datatyper: datatypen til den returnerte kolonnen bør samsvare med kolonnen du sammenligner 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 sammen 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!