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()
enMAX()
: 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.