Basis Cursus: SQL voor Data Analyse


Hoofdstuk 1: Wat is SQL?

SQL (Structured Query Language) is de standaardtaal voor het communiceren met en manipuleren van databases. Het wordt gebruikt om gegevens op te halen, in te voegen, bij te werken en te verwijderen in relationele databases.

  • Relationale databases slaan gegevens op in tabellen die met elkaar verbonden kunnen worden via relaties.
  • SQL maakt het mogelijk om gegevens efficiënt te zoeken, te filteren en te analyseren.

Hoofdstuk 2: Basis SQL-commando’s

2.1 SELECT: Gegevens ophalen

Het SELECT-commando wordt gebruikt om gegevens uit een tabel op te halen.

SELECT kolom1, kolom2
FROM tabelnaam;

Voorbeeld:

SELECT naam, leeftijd
FROM klanten;
2.2 WHERE: Gegevens filteren

Het WHERE-commando helpt je om specifieke rijen op te halen die voldoen aan bepaalde voorwaarden.

SELECT kolom1, kolom2
FROM tabelnaam
WHERE conditie;

Voorbeeld:

SELECT naam, leeftijd
FROM klanten
WHERE leeftijd > 18;
2.3 AND, OR: Meerdere voorwaarden combineren

Met AND en OR kun je meerdere voorwaarden in één query combineren.

SELECT naam, leeftijd
FROM klanten
WHERE leeftijd > 18 AND stad = 'Amsterdam';
2.4 ORDER BY: Sorteren van resultaten

Met ORDER BY kun je de resultaten sorteren op een of meerdere kolommen.

SELECT naam, leeftijd
FROM klanten
ORDER BY leeftijd DESC;
  • ASC voor oplopend (standaard).
  • DESC voor aflopend.
2.5 DISTINCT: Dubbele rijen verwijderen

Als je alleen unieke waarden wilt ophalen, gebruik dan DISTINCT.

SELECT DISTINCT stad
FROM klanten;

Hoofdstuk 3: Groeperen en Aggregaties

3.1 GROUP BY: Gegevens groeperen

Met GROUP BY kun je gegevens groeperen op basis van een kolom en vervolgens aggregatiefuncties toepassen.

SELECT stad, COUNT(*) AS aantal_klanten
FROM klanten
GROUP BY stad;
3.2 Aggregatiefuncties

SQL biedt verschillende aggregatiefuncties die je kunt gebruiken met GROUP BY:

  • COUNT(): Het aantal rijen.
  • SUM(): Het totaal van een numerieke kolom.
  • AVG(): Het gemiddelde van een kolom.
  • MIN() en MAX(): De kleinste of grootste waarde.

Voorbeeld:

SELECT AVG(leeftijd) AS gemiddelde_leeftijd
FROM klanten;
3.3 HAVING: Filteren van gegroepeerde gegevens

Je kunt de HAVING-clausule gebruiken om de resultaten van een GROUP BY-query te filteren.

SELECT stad, COUNT(*) AS aantal_klanten
FROM klanten
GROUP BY stad
HAVING COUNT(*) > 5;

Hoofdstuk 4: Joins – Verbinden van Tabellen

In een relationele database zijn gegevens vaak verdeeld over meerdere tabellen. Een JOIN wordt gebruikt om gegevens uit verschillende tabellen te combineren.

4.1 INNER JOIN

Een INNER JOIN combineert rijen van twee tabellen op basis van een gemeenschappelijke kolom. Alleen rijen met overeenkomende waarden worden teruggegeven.

SELECT klanten.naam, bestellingen.bestel_datum
FROM klanten
INNER JOIN bestellingen
ON klanten.klant_id = bestellingen.klant_id;
4.2 LEFT JOIN

Een LEFT JOIN haalt alle rijen uit de linker tabel en de overeenkomende rijen uit de rechter tabel. Als er geen overeenkomst is, worden de waarden van de rechter tabel NULL.

SELECT klanten.naam, bestellingen.bestel_datum
FROM klanten
LEFT JOIN bestellingen
ON klanten.klant_id = bestellingen.klant_id;
4.3 RIGHT JOIN

Een RIGHT JOIN is het tegenovergestelde van een LEFT JOIN: het haalt alle rijen uit de rechter tabel en de overeenkomende rijen uit de linker tabel.

4.4 FULL JOIN

Een FULL JOIN combineert alle rijen van beide tabellen, met NULL voor ontbrekende waarden.


Hoofdstuk 5: Subqueries – Query’s binnen een Query

Een subquery is een query die binnen een andere query wordt gebruikt. Dit is handig als je gegevens nodig hebt die je niet direct in de hoofdtabel kunt vinden.

SELECT naam
FROM klanten
WHERE klant_id IN (
    SELECT klant_id
    FROM bestellingen
    WHERE bestel_datum > '2025-01-01'
);

Hoofdstuk 6: Data manipuleren

6.1 Gegevens invoegen (INSERT INTO)

Met het INSERT INTO-commando voeg je nieuwe gegevens toe aan een tabel.

INSERT INTO klanten (naam, leeftijd, stad)
VALUES ('Jan de Vries', 25, 'Utrecht');
6.2 Gegevens bijwerken (UPDATE)

Met UPDATE kun je bestaande gegevens bijwerken.

UPDATE klanten
SET leeftijd = 26
WHERE naam = 'Jan de Vries';
6.3 Gegevens verwijderen (DELETE)

Met DELETE kun je gegevens uit een tabel verwijderen.

DELETE FROM klanten
WHERE naam = 'Jan de Vries';

Hoofdstuk 7: Veelvoorkomende analysetechnieken

  • Tellingen en frequenties: Gebruik COUNT() om het aantal rijen te tellen of de frequentie van bepaalde waarden.
SELECT stad, COUNT(*)
FROM klanten
GROUP BY stad;
  • Top N records: Haal de top N records op op basis van een kolom.
SELECT naam, omzet
FROM klanten
ORDER BY omzet DESC
LIMIT 10;
  • Verschillen en trends: Gebruik JOIN-technieken om trends in de tijd te analyseren.

Hoofdstuk 8: Opties voor SQL-analysetools

Er zijn verschillende tools en platforms die je kunt gebruiken om SQL-query’s uit te voeren en data te analyseren:

  • MySQL: Een populaire open-source database.
  • PostgreSQL: Een krachtig open-source databasebeheersysteem.
  • SQLite: Een lichtgewicht database die ideaal is voor lokale projecten.
  • Microsoft SQL Server: Een commerciële SQL-database.
  • Google BigQuery: Een cloudgebaseerde SQL-analysetool.

Conclusie

Dit is een basisoverzicht van SQL en hoe je het kunt gebruiken voor data-analyse. SQL is krachtig, en met de juiste kennis kun je vrijwel elke gegevensanalyse uitvoeren, van eenvoudige selecties tot complexe data-aggregaties. Het belangrijkste is om te oefenen en te experimenteren met verschillende SQL-commando’s en -technieken.