SQL Tutorial: De Juiste Volgorde van Commando’s

Als je net begint met SQL, is het belangrijk om de basisstructuur van een SQL-query goed te begrijpen. Het proces is meestal hetzelfde, ongeacht de database waarmee je werkt (zoals MySQL, PostgreSQL, SQL Server, etc.).

Deze tutorial legt uit wat je moet doen als je gegevens uit een database wilt halen. We gaan de basis SQL-syntaxis stap voor stap door, zodat je snel kunt starten!


1. De Basisstructuur van een SQL-query

Een SQL-query bestaat uit verschillende onderdelen. De volgorde van deze onderdelen is altijd hetzelfde. Dit is de basisstructuur:

SELECT kolommen
FROM tabelnaam
WHERE voorwaarden
GROUP BY kolommen
HAVING voorwaarden
ORDER BY kolommen
LIMIT aantal;

Laten we elk onderdeel stap voor stap uitleggen:


2. SELECT – Welke Gegevens Wil Je Zien?

Het SELECT-commando wordt gebruikt om de kolommen aan te geven die je wilt ophalen uit de database.

  • Als je alle kolommen wilt zien, gebruik je *.
  • Als je specifieke kolommen wilt zien, noem je ze apart.

Voorbeeld: Stel je hebt een tabel klanten en je wilt de naam en het e-mailadres van klanten zien:

SELECT naam, email
FROM klanten;
  • SELECT naam, email betekent: ik wil de kolommen naam en email zien.
  • FROM klanten betekent: haal de gegevens op uit de tabel klanten.

3. WHERE – Filters Toevoegen (Optioneel)

Met de WHERE-clausule kun je de gegevens filteren op basis van bepaalde voorwaarden. Het is alsof je de database vraagt om alleen bepaalde rijen te tonen die voldoen aan een bepaalde voorwaarde.

Voorbeeld: Als je alleen klanten wilt zien die ouder zijn dan 18 jaar, gebruik je:

SELECT naam, email
FROM klanten
WHERE leeftijd > 18;
  • WHERE leeftijd > 18 betekent dat je alleen klanten wilt zien waarvan de leeftijd groter is dan 18.

4. GROUP BY – Gegevens Groeperen (Optioneel)

Als je bijvoorbeeld de aantallen wilt tellen of gemiddelden wilt berekenen, kun je de GROUP BY-clausule gebruiken om je gegevens te groeperen op basis van een kolom.

Voorbeeld: Stel je wilt het aantal klanten per stad weten:

SELECT stad, COUNT(*) AS aantal_klanten
FROM klanten
GROUP BY stad;
  • COUNT(*) telt het aantal rijen per stad.
  • GROUP BY stad groepeert de gegevens op stad.

5. HAVING – Filteren na Groeperen (Optioneel)

Soms wil je na het groeperen de resultaten filteren op basis van een voorwaarde. Dit doe je met de HAVING-clausule (in plaats van WHERE, die alleen werkt voor niet-gegroepeerde gegevens).

Voorbeeld: Stel je wilt alleen steden zien waar meer dan 5 klanten wonen:

SELECT stad, COUNT(*) AS aantal_klanten
FROM klanten
GROUP BY stad
HAVING COUNT(*) > 5;
  • HAVING COUNT(*) > 5 betekent dat je alleen steden toont waar meer dan 5 klanten wonen.

6. ORDER BY – Sorteren van Gegevens (Optioneel)

Met ORDER BY kun je de resultaten sorteren. Je kunt kiezen of je wilt sorteren in oplopende (ASC) of aflopende (DESC) volgorde.

Voorbeeld: Als je klanten wilt sorteren op naam in oplopende volgorde:

SELECT naam, email
FROM klanten
ORDER BY naam ASC;
  • ORDER BY naam ASC betekent dat de resultaten op naam worden gesorteerd in oplopende volgorde.

Wil je de nieuwste klanten eerst zien? Dan gebruik je aflopende volgorde:

SELECT naam, email, aanmeld_datum
FROM klanten
ORDER BY aanmeld_datum DESC;
  • ORDER BY aanmeld_datum DESC betekent dat de laatst aangemelde klanten bovenaan komen.

7. LIMIT – Aantal Resultaten Beperken (Optioneel)

Met LIMIT kun je het aantal rijen dat je wilt ophalen beperken. Dit is handig als je alleen de eerste paar resultaten wilt zien.

Voorbeeld: Als je de eerste 10 klanten wilt zien:

SELECT naam, email
FROM klanten
ORDER BY aanmeld_datum DESC
LIMIT 10;
  • LIMIT 10 betekent dat je maar 10 klanten wilt zien, zelfs als er meer klanten in de tabel staan.

Samenvatting van de SQL-syntaxis:

Dit is de volgorde waarin je SQL-query’s opbouwt:

  1. SELECT – Welke kolommen wil je ophalen?
  2. FROM – Uit welke tabel wil je gegevens halen?
  3. WHERE – Filter de gegevens op basis van voorwaarden.
  4. GROUP BY – Groepeer de gegevens (bijvoorbeeld om te tellen of gemiddelden te berekenen).
  5. HAVING – Filter de gegroepeerde gegevens.
  6. ORDER BY – Sorteer de resultaten.
  7. LIMIT – Beperk het aantal resultaten.

Een Complete SQL-query

Laten we alles samenvoegen in een voorbeeld. Stel je voor dat je de top 5 steden wilt zien met meer dan 5 klanten, gesorteerd op het aantal klanten, van hoog naar laag:

SELECT stad, COUNT(*) AS aantal_klanten
FROM klanten
GROUP BY stad
HAVING COUNT(*) > 5
ORDER BY aantal_klanten DESC
LIMIT 5;
  • COUNT(*) telt de klanten per stad.
  • GROUP BY stad groepeert de klanten op stad.
  • HAVING COUNT(*) > 5 zorgt ervoor dat je alleen steden ziet met meer dan 5 klanten.
  • ORDER BY aantal_klanten DESC sorteert de steden op het aantal klanten, van hoog naar laag.
  • LIMIT 5 zorgt ervoor dat je alleen de top 5 steden ziet.

Conclusie

Met deze basis SQL-structuur kun je snel beginnen met het ophalen en analyseren van gegevens uit databases. Onthoud de volgorde van de commando’s:

  1. SELECT (welke kolommen)
  2. FROM (tabelnaam)
  3. WHERE (voorwaardes)
  4. GROUP BY (groeperen)
  5. HAVING (filteren na groeperen)
  6. ORDER BY (sorteren)
  7. LIMIT (aantal resultaten)

Na verloop van tijd kun je steeds complexere queries schrijven. Dus, oefen met eenvoudige queries en voeg langzaam meer opties toe om je vaardigheden te verbeteren!