📊 Sorteren & beperken
Resultaten ordenen met ORDER BY, beperken met LIMIT en unieke waarden ophalen met DISTINCT.
ORDER BY — resultaten sorteren
Zonder ORDER BY is de volgorde van resultaten ongedefinieerd. Gebruik het altijd als volgorde belangrijk is.
-- A → Z, 1 → 100
SELECT naam, leeftijd
FROM gebruikers
ORDER BY leeftijd ASC;
-- ASC is optioneel (standaard)
ORDER BY leeftijd
-- Z → A, 100 → 1
SELECT naam, prijs
FROM producten
ORDER BY prijs DESC;
-- Duurste product eerst
-- Eerst op categorie (A-Z), daarna op prijs (laag-hoog)
SELECT naam, categorie, prijs
FROM producten
ORDER BY categorie ASC, prijs ASC;
-- Categorie alfabetisch, binnen categorie duurste eerst
ORDER BY categorie ASC, prijs DESC
In SQLite komen NULL-waarden bij ASC als eerste, bij DESC als laatste. Dit verschilt per database.
LIMIT & OFFSET — pagineren
LIMIT beperkt het aantal rijen. OFFSET slaat rijen over — samen realiseer je paginering.
-- Top 3 duurste producten
SELECT naam, prijs FROM producten
ORDER BY prijs DESC
LIMIT 3;
-- Goedkoopste product
SELECT naam, prijs FROM producten
ORDER BY prijs ASC
LIMIT 1;
-- Pagina 1: rij 1–3 (sla 0 over)
SELECT * FROM producten ORDER BY id LIMIT 3 OFFSET 0;
-- Pagina 2: rij 4–6 (sla 3 over)
SELECT * FROM producten ORDER BY id LIMIT 3 OFFSET 3;
-- Pagina N: OFFSET = (pagina - 1) * pageSize
Zonder ORDER BY is de "top N" willekeurig. Combineer LIMIT altijd met ORDER BY voor voorspelbare resultaten.
DISTINCT — unieke waarden
DISTINCT verwijdert duplicaten uit het resultaat. Handig om te zien welke unieke waarden er bestaan.
SELECT categorie FROM producten;
-- Resultaat:
Elektronica
Elektronica
Meubels
Meubels
Elektronica
Wonen
SELECT DISTINCT categorie FROM producten;
-- Resultaat:
Elektronica
Meubels
Wonen
-- Unieke combinaties van gebruiker + product
SELECT DISTINCT gebruiker_id, product_id FROM orders;
-- Telt unieke categorieën
SELECT COUNT(DISTINCT categorie) FROM producten;
Voor het ophalen van unieke waarden kun je ook GROUP BY gebruiken. DISTINCT is korter; GROUP BY is krachtiger (je kunt dan ook COUNT etc. toevoegen — zie les 6).
Volgorde van clausules
SQL-clausules moeten in een vaste volgorde staan. Onthoud de volgorde als een ezelsbruggetje:
SELECTwelke kolommen (of *)FROMuit welke tabelWHEREfilter de rijenORDER BYsorteer de resultatenLIMITbeperk het aantal-- De 2 goedkoopste Elektronica-producten
SELECT naam, prijs
FROM producten
WHERE categorie = 'Elektronica'
ORDER BY prijs ASC
LIMIT 2;
-- Pagina 1: actieve gebruikers, gesorteerd op naam
SELECT naam, email
FROM gebruikers
WHERE actief = 1
ORDER BY naam ASC
LIMIT 10 OFFSET 0;
Oefening
- Haal de 2 goedkoopste producten op (naam + prijs)
- Toon alle gebruikers gesorteerd op naam (A→Z)
- Toon de unieke categorieën uit de producten-tabel
- Welke gebruiker is het oudst? (gebruik LIMIT 1)
🧠 Kennischeck
Les 3 afgerond!
Je sorteert, pagineert en haalt unieke waarden op — de bouwstenen voor elke lijst-weergave.