Ga naar hoofdinhoud

Introductie tot de WHERE-clausule in SQL

In deze tutorial maak je kennis met het filteren van rijen in SQL met behulp van de WHERE-clausule.
Bijgewerkt 2 okt 2026  · 7 min lezen

Verken met AI

ChatGPTClaudePerplexity

Rijen uit een tabel filteren op basis van een voorwaarde of een set voorwaarden is heel gebruikelijk in data-analyse. In SQL kun je dit doen met de where-clausule. In deze tutorial gebruik je die in verschillende scenario’s.

Je gebruikt PostgreSQL als het RDBMS (Relational Database Management System), maar de syntaxis verschilt niet veel bij andere databasesystemen. Je begint met het opzetten van een PostgreSQL-database en het handmatig maken van een tabel met landeninformatie. Nadat dit is opgezet, voer je meerdere filterqueries uit met de WHERE-clausule.

Let op: Om deze tutorial te volgen, moet je bekend zijn met de basis van SQL en PostgreSQL. De volgende bronnen kunnen helpen als je daar niet mee bekend bent.

Een tabel maken in PostgreSQL

Om deze tutorial te volgen, moet je een tabel in PostgreSQL maken met informatie over landen over de hele wereld. Deze tabel wordt gebruikt om te laten zien hoe de WHERE-clausule in verschillende scenario’s werkt.

Stap 1: Maak een nieuwe database

Open pgAdmin (of je favoriete SQL-interface) en maak een nieuwe PostgreSQL-database. Je kunt hem bijvoorbeeld world_data noemen, of een andere naam die je prettig vindt.

Stap 2: Maak en vul je tabel

Zodra je database klaar is, open je een nieuw SQL-queryvenster en voer je de volgende SQL-code uit. Deze maakt een tabel met de naam countries en voegt een set records in die een groot aantal continenten, onafhankelijkheidsjaren en regio’s dekken:

-- Create the countries tableCREATE TABLE countries (    code VARCHAR(3) PRIMARY KEY,    name VARCHAR(100),    continent VARCHAR(50),    region VARCHAR(100),    surface_area NUMERIC,    indep_year INTEGER,    local_name VARCHAR(100),    gov_form VARCHAR(100),    capital VARCHAR(100),    cap_long NUMERIC,    cap_lat NUMERIC);-- Insert sample data into the countries tableINSERT INTO countries (code, name, continent, region, surface_area, indep_year, local_name, gov_form, capital, cap_long, cap_lat)VALUES('IND', 'India', 'Asia', 'Southern Asia', 3287263, 1947, 'Bharat', 'Federal Republic', 'New Delhi', 77.2090, 28.6139),('PAK', 'Pakistan', 'Asia', 'Southern Asia', 881912, 1947, 'Pakistan', 'Federal Republic', 'Islamabad', 73.0551, 33.6844),('CHN', 'China', 'Asia', 'Eastern Asia', 9596961, NULL, 'Zhongguo', 'People''s Republic', 'Beijing', 116.4074, 39.9042),('VNM', 'Vietnam', 'Asia', 'South-Eastern Asia', 331212, 1945, 'Việt Nam', 'Socialist Republic', 'Hanoi', 105.8544, 21.0285),('JPN', 'Japan', 'Asia', 'Eastern Asia', 377975, NULL, 'Nippon', 'Constitutional Monarchy', 'Tokyo', 139.6917, 35.6895),('DEU', 'Germany', 'Europe', 'Western Europe', 357386, 1955, 'Deutschland', 'Federal Republic', 'Berlin', 13.4050, 52.5200),('FRA', 'France', 'Europe', 'Western Europe', 551695, 843, 'France', 'Republic', 'Paris', 2.3522, 48.8566),('RUS', 'Russia', 'Europe', 'Eastern Europe', 17098242, 1991, 'Rossiya', 'Federation', 'Moscow', 37.6173, 55.7558),('UKR', 'Ukraine', 'Europe', 'Eastern Europe', 603500, 1991, 'Ukrayina', 'Republic', 'Kyiv', 30.5234, 50.4501),('EGY', 'Egypt', 'Africa', 'Northern Africa', 1002450, 1922, 'Misr', 'Republic', 'Cairo', 31.2357, 30.0444),('NGA', 'Nigeria', 'Africa', 'Western Africa', 923768, 1960, 'Nigeria', 'Federal Republic', 'Abuja', 7.4951, 9.0578),('AUS', 'Australia', 'Oceania', 'Australia and New Zealand', 7682300, 1901, 'Australia', 'Federal Parliamentary Democracy', 'Canberra', 149.1245, -35.3075),('USA', 'United States', 'North America', 'North America', 9833517, 1776, 'United States', 'Federal Republic', 'Washington, D.C.', -77.0369, 38.9072),('CAN', 'Canada', 'North America', 'North America', 9984670, 1867, 'Canada', 'Constitutional Monarchy', 'Ottawa', -75.6972, 45.4215),('BRA', 'Brazil', 'South America', 'South America', 8515767, 1822, 'Brasil', 'Federal Republic', 'Brasília', -47.9292, -15.7801),('ARG', 'Argentina', 'South America', 'South America', 2780400, 1816, 'Argentina', 'Federal Republic', 'Buenos Aires', -58.3816, -34.6037);

De tabel bevat verschillende gegevens over in totaal zo’n 16 landen wereldwijd. De tabel heeft de volgende kolommen:

  • code, de primaire sleutel van de tabel, die de universele landcode voor een land aangeeft

  • name, oftewel de naam van een land

  • continent waartoe een land behoort

  • region de geografische locatie waar een land ligt

  • surface_area van het land

  • indep_year, oftewel het jaar waarin een land onafhankelijk werd

  • local_name van een land

  • gov_form, oftewel de regeringsvorm in een land

  • capital van een land

  • cap_long, oftewel de lengtegraad van de hoofdstad van een land

  • cap_lat, oftewel de breedtegraad van de hoofdstad van een land

Laten we nu wat records filteren met de WHERE-clausule.

De SQL WHERE-clausule gebruiken

In SQL kun je met de WHERE-clausule records filteren op zowel tekstuele als numerieke waarden. Je kunt deze waarden vergelijken, en de volgende vergelijkingsoperators worden ondersteund:

  • = gelijk aan

  • <> en != niet gelijk aan

  • < kleiner dan

  • > groter dan

  • <= kleiner dan of gelijk aan

  • >= groter dan of gelijk aan

Volgens de SQL-standaard is het aan te raden <> te gebruiken in plaats van !=.

Haal nu het record op van het land waarvoor de code AUS is. De kolom die je hier moet vergelijken is de code-kolom en de te vergelijken waarde is AUS. De query is:

SELECT * FROM countries WHERE code = 'AUS';

En je krijgt:

Let hier op een paar dingen:

  • De WHERE-clausule komt altijd na FROM.

  • In SQL worden strings tussen enkele aanhalingstekens gezet.

Bekijk nu een numerieke vergelijking. Haal de records op van landen die hun onafhankelijkheid (indep_year) na 1901 kregen:

SELECT * FROM countries WHERE indep_year > 1901;

Je krijgt de records van in totaal 3 landen die na 1901 onafhankelijk werden. Let op de comparator die hier wordt gebruikt. De kolom indep_year is van het type integer. Daarom gebruik je geen aanhalingstekens in de vergelijking.

Je kunt meerdere voorwaarden in een WHERE-clausule combineren met AND en OR. De volgende query haalt de records op van landen waar continent = 'Asia' and indep_year > 1900:

SELECT * FROM countries WHERE continent = 'Asia' AND indep_year > 1901;

Je krijgt informatie over in totaal drie landen die op het continent Asia liggen en na 1901 onafhankelijk werden. Merk op dat je in de bovenstaande query zowel tekstuele als numerieke waarden vergeleek. Oefen zelf met verschillende combinaties van AND en OR in de WHERE-clausule.

Let op: Wanneer je AND en OR combineert, vergeet dan niet om elke voorwaarde tussen haakjes te zetten. Anders raakt SQL in de war bij het bepalen van de volgorde waarin de voorwaarden geëvalueerd worden.

Met de volgende query krijg je in totaal zes landen.

SELECT * FROM countries WHERE(continent = 'Europe' AND indep_year > 1900)or(continent = 'Asia' AND indep_year > 1900);

Je kunt zelfs meer dan twee voorwaarden combineren in een WHERE-clausule:

SELECT * FROM countries WHERE continent = 'Asia' OR indep_year > 1900 OR surface_area > 652090;

Hier krijg je in totaal 15 landen die óf in Asia liggen, óf na 1901 onafhankelijk werden, óf een oppervlakte hebben die groter is dan 652090.

Laten we de query nu omzetten naar een AND-variant, die strenger is:

SELECT * FROM countries WHERE continent = 'Asia' AND indep_year > 1901 AND surface_area > 652090;

In dit geval krijg je in totaal twee landen.

Je kunt ook subquery’s combineren in een WHERE-clausule. Stel dat je het record wilt ophalen van het land met de grootste oppervlakte, maar je weet niet wat de maximale oppervlakte van een land is. De volgende query kan in zulke situaties uitkomst bieden:

SELECT * FROM countries WHERE surface_area in (SELECT MAX(surface_area) FROM countries);

Je zou het record van Russia moeten krijgen.

Conclusie

Gefeliciteerd, je hebt deze tutorial afgerond. Queryresultaten filteren aan de hand van voorwaarden is absoluut een essentiële vaardigheid, en deze tutorial was een introductie daarop. Wil je je SQL-skills verder aanscherpen, bekijk dan onze cursussen (link hieronder).


Sayak Paul's photo
Author
Sayak Paul

Sayak werkt bij Hugging Face, waar hij codeert, schrijft en spreekt. Hij brengt het grootste deel van zijn tijd door met alles rond de Diffusers-bibliotheek. Hij is ook projectinstructeur bij DataCamp en auteur van veel DataCamp-tutorials. Buiten het werk betrap je hem erop dat hij voor de zoveelste keer Suits op Netflix aan het bingewatchen is. 

SQL WHERE-clausule: veelgestelde vragen

Kan ik zowel tekst- als numerieke kolommen gebruiken in een WHERE-clausule?

Ja, je kunt filteren op zowel tekst (bijv. 'Asia') als numerieke waarden (bijv. > 1901). Onthoud wel dat tekstwaarden tussen enkele aanhalingstekens moeten staan.

Is er een verschil tussen <> en != in SQL?

Beide betekenen "niet gelijk aan", maar <> is de standaard SQL-operator. Sommige databases ondersteunen ook !=, maar voor compatibiliteit kun je het beste <> gebruiken.

Hoe filter ik records met NULL-waarden?

Gebruik IS NULL of IS NOT NULL. Bijvoorbeeld:

SELECT * FROM countries WHERE indep_year IS NULL;

Kan ik subquery’s gebruiken in een WHERE-clausule?

Ja, subquery’s kun je gebruiken om een kolom te vergelijken met het resultaat van een andere query. Bijvoorbeeld:

SELECT * FROM countries WHERE surface_area = (SELECT MAX(surface_area) FROM countries);

Komt de WHERE-clausule vóór of na de FROM-clausule?

De WHERE-clausule komt altijd na de FROM-clausule en vóór clausules zoals GROUP BY of ORDER BY.

Kan ik WHERE gebruiken met JOINs?

Zeker. Je kunt de WHERE-clausule toepassen na het uitvoeren van een JOIN om het gecombineerde resultaat te filteren.

Onderwerpen
Data-analyse
Data Science
SQL

SQL-cursussen

Cursus

Queryprestaties verbeteren in PostgreSQL

4 uur
14.2K
Leer hoe je je PostgreSQL-query's zo kunt opzetten dat ze in een mum van tijd worden uitgevoerd.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken