Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Geneste Query's | Geneste Subquery's
Intermediair SQL

Geneste Query's

Veeg om het menu te tonen

De schooladministratie is tevreden met je recente prestaties en kijkt ernaar uit om verder te gaan.

Nu zij aan hun zomervakantie beginnen, krijg jij de kans om nieuwe methoden te verkennen en je SQL-vaardigheden te verbeteren.

De focus ligt op geneste queries, een belangrijk concept in SQL.

Note
Definitie

Geneste queries, of geneste subqueries, zijn essentiële onderdelen van SQL waarbij een query zich binnen een andere query bevindt. Deze constructies maken diverse bewerkingen mogelijk, zoals het filteren, berekenen en ophalen van gegevens, waarbij vaak de integratie van subqueries vereist is.

Bekijk een voorbeeld uit de bedrijfsdatabase. Naarmate het bedrijf groeit, is er een nieuwe department-tabel toegevoegd. Dit verandert de werking van onze database.

Bekijk de structuur van de nieuwe tabel om de rol ervan in de database te zien:

De nieuwe tabel bevat afdelingen, hun typen en budgetten. En in de employee-tabel, zoals je je wellicht herinnert, staat informatie over de afdeling waartoe elke werknemer behoort.

Bekijk een voorbeeld waarbij geneste queries worden gebruikt om die werknemers op te halen die werken in afdelingen met een budget van $500.000 of minder:

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

Een WHERE-clausule wordt gebruikt om aan te geven dat de afdelingsnaam aanwezig moet zijn in de tabel die wordt opgehaald met de interne query.

Splits deze query op in twee afzonderlijke queries om te zien hoe deze werkt. Eerst halen we de namen van afdelingen op met een budget van $500.000 of minder (interne query):

123
SELECT name FROM department WHERE budget <= 500000

Schrijf nu, rekening houdend met het verkregen resultaat, de tweede query om informatie over de medewerkers uit deze afdelingen op te halen:

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

Het resultaat van deze query zal hetzelfde zijn als de eerste query.

Hier volgt een stapsgewijze uitleg:

  1. De interne query haalt de names van de benodigde afdelingen op;

  2. De WHERE-clausule controleert of deze afdelingen in de tabel uit de interne query staan;

  3. We krijgen het gewenste resultaat.

Hier is de basissyntaxis voor een interne query:

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

Let bij het gebruik van geneste queries op de volgende belangrijke punten:

  1. Enkel resultaat in subquery: zorg ervoor dat de geneste query slechts één kolom retourneert. Als deze wordt gebruikt in een vergelijking, moet deze idealiter één waarde teruggeven. Dit is cruciaal voor operatoren zoals =, >, <, >=, <=, <>;

  2. Datatypes: het datatype van de geretourneerde kolom moet overeenkomen met de kolom waarmee je vergelijkt, om fouten te voorkomen;

  3. Optimalisatie: geneste queries kunnen traag zijn, vooral als ze voor elke rij in de hoofdquery worden uitgevoerd;

  4. Gebruik van de IN-operator: geneste queries gebruiken vaak de IN-operator om te controleren op waarden in een subset. Je kunt ook vergelijkingsoperatoren gebruiken voor complexere voorwaarden.

1. Wat is een geneste query in SQL?

2. Welke SQL-operator wordt vaak gebruikt met geneste queries om te controleren op waarden in een subset?

3. Waarom is het belangrijk dat het gegevenstype van de kolom die door een geneste query wordt geretourneerd overeenkomt met de kolom waarmee deze wordt vergeleken?

question mark

Wat is een geneste query in SQL?

Selecteer het correcte antwoord

question mark

Welke SQL-operator wordt vaak gebruikt met geneste queries om te controleren op waarden in een subset?

Selecteer het correcte antwoord

question mark

Waarom is het belangrijk dat het gegevenstype van de kolom die door een geneste query wordt geretourneerd overeenkomt met de kolom waarmee deze wordt vergeleken?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 1

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 2. Hoofdstuk 1
some-alt