Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Nästlade Frågor | Nästlade Underfrågor
Intermediär SQL

Nästlade Frågor

Svep för att visa menyn

Skoladministrationen är nöjd med dina senaste prestationer och ser fram emot att gå vidare.

När de påbörjar sitt sommarlov får du möjlighet att utforska nya metoder och förbättra dina SQL-kunskaper.

Ditt fokus kommer att vara på nästlade frågor, ett centralt begrepp inom SQL.

Note
Definition

Nästa frågor, eller nästlade subfrågor, är integrerade komponenter i SQL där en fråga finns inuti en annan fråga. Dessa konstruktioner möjliggör olika operationer såsom datafiltrering, beräkning och hämtning, vilket ofta kräver integration av subfrågor.

Titta på ett exempel från företagsdatabasen. I takt med att företaget växer har tabellen fått en ny department-tabell. Detta förändrar hur vår databas fungerar.

Granska den nya tabellens struktur för att se dess roll i databasen:

Den nya tabellen innehåller avdelningar, deras typer och budgetar. Och i tabellen employee finns, som du kanske minns, information om vilken avdelning varje anställd tillhör.

Tänk på ett exempel där nästlade frågor används för att hämta de anställda som arbetar i avdelningar med en budget på 500 000 dollar eller mindre:

1234567
SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )

En WHERE-sats används för att ange att avdelningsnamnet ska finnas i tabellen som hämtas med den inre frågan.

Dela upp denna fråga i två separata för att se hur den fungerar. Först hämtar vi namnen på avdelningar med budgetar på 500 000 dollar eller mindre (inre fråga):

123
SELECT name FROM department WHERE budget <= 500000

Nu, med tanke på det erhållna resultatet, skriv den andra frågan för att hämta information om de anställda från dessa avdelningar:

12345
SELECT * FROM employees WHERE department IN ( 'Marketing', 'Human Resources', 'Finance', 'Customer Service', 'Legal' )

Resultatet av denna fråga kommer att vara samma som den första frågan.

Här är en steg-för-steg-genomgång:

  1. Den inre frågan hämtar names på de avdelningar vi behöver;

  2. WHERE-satsen kontrollerar om dessa avdelningar finns i tabellen från den inre frågan;

  3. Vi får det resultat vi vill ha.

Här är den grundläggande syntaxen för en inre fråga:

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

När du använder nästlade frågor, tänk på dessa viktiga punkter:

  1. Enskilt resultat i underfråga: säkerställ att den nästlade frågan returnerar endast en kolumn. Om den används i en jämförelse bör den helst returnera ett enda värde. Detta är avgörande för operatorer som =, >, <, >=, <=, <>;

  2. Datatyper: datatypen för den returnerade kolumnen ska matcha kolumnen du jämför med, för att undvika fel;

  3. Optimering: nästlade frågor kan vara långsamma, särskilt om de körs för varje rad i huvudfrågan;

  4. Användning av IN-operatorn: nästlade frågor använder ofta IN-operatorn för att kontrollera värden i en delmängd. Du kan också använda jämförelseoperatorer för mer komplexa villkor.

1. Vad är en nästlad fråga i SQL?

2. Vilken SQL-operator används ofta med nästlade frågor för att kontrollera värden i en delmängd?

3. Varför är det viktigt att datatypen för kolumnen som returneras av en nästlad fråga matchar kolumnen den jämförs med?

question mark

Vad är en nästlad fråga i SQL?

Vänligen välj det korrekta svaret

question mark

Vilken SQL-operator används ofta med nästlade frågor för att kontrollera värden i en delmängd?

Vänligen välj det korrekta svaret

question mark

Varför är det viktigt att datatypen för kolumnen som returneras av en nästlad fråga matchar kolumnen den jämförs med?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 1

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 2. Kapitel 1
some-alt