SQL-trackLes 3 van 10

📊 Sorteren & beperken

Resultaten ordenen met ORDER BY, beperken met LIMIT en unieke waarden ophalen met DISTINCT.

⏱ 20 min6 stappenInteractieve SQL-sandbox
Stap 1 / 6

ORDER BY — resultaten sorteren

Zonder ORDER BY is de volgorde van resultaten ongedefinieerd. Gebruik het altijd als volgorde belangrijk is.

ASC — oplopend (standaard)
-- A → Z, 1 → 100
SELECT naam, leeftijd
FROM gebruikers
ORDER BY leeftijd ASC;

-- ASC is optioneel (standaard)
ORDER BY leeftijd
DESC — aflopend
-- Z → A, 100 → 1
SELECT naam, prijs
FROM producten
ORDER BY prijs DESC;

-- Duurste product eerst
Sorteren op meerdere kolommen
-- 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
NULL bij sortering

In SQLite komen NULL-waarden bij ASC als eerste, bij DESC als laatste. Dit verschilt per database.

Stap 2 / 6

LIMIT & OFFSET — pagineren

LIMIT beperkt het aantal rijen. OFFSET slaat rijen over — samen realiseer je paginering.

LIMIT — de top N ophalen
-- 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;
LIMIT + OFFSET — paginering
-- 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
⚠️ LIMIT zonder ORDER BY is gevaarlijk

Zonder ORDER BY is de "top N" willekeurig. Combineer LIMIT altijd met ORDER BY voor voorspelbare resultaten.

Stap 3 / 6

DISTINCT — unieke waarden

DISTINCT verwijdert duplicaten uit het resultaat. Handig om te zien welke unieke waarden er bestaan.

Zonder DISTINCT
SELECT categorie FROM producten;

-- Resultaat:
Elektronica
Elektronica
Meubels
Meubels
Elektronica
Wonen
Met DISTINCT
SELECT DISTINCT categorie FROM producten;

-- Resultaat:
Elektronica
Meubels
Wonen
DISTINCT op meerdere kolommen
-- Unieke combinaties van gebruiker + product
SELECT DISTINCT gebruiker_id, product_id FROM orders;

-- Telt unieke categorieën
SELECT COUNT(DISTINCT categorie) FROM producten;
DISTINCT vs GROUP BY

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).

Stap 4 / 6

Volgorde van clausules

SQL-clausules moeten in een vaste volgorde staan. Onthoud de volgorde als een ezelsbruggetje:

SELECTwelke kolommen (of *)
FROMuit welke tabel
WHEREfilter de rijen
ORDER BYsorteer de resultaten
LIMITbeperk het aantal
Compleet voorbeeld
-- De 2 goedkoopste Elektronica-producten
SELECT naam, prijs
FROM producten
WHERE categorie = 'Elektronica'
ORDER BY prijs ASC
LIMIT 2;
Praktijkscenario — paginering van actieve gebruikers
-- Pagina 1: actieve gebruikers, gesorteerd op naam
SELECT naam, email
FROM gebruikers
WHERE actief = 1
ORDER BY naam ASC
LIMIT 10 OFFSET 0;
Stap 5 / 6

Oefening

🎯 Opdrachten
  1. Haal de 2 goedkoopste producten op (naam + prijs)
  2. Toon alle gebruikers gesorteerd op naam (A→Z)
  3. Toon de unieke categorieën uit de producten-tabel
  4. Welke gebruiker is het oudst? (gebruik LIMIT 1)
Resultaat verschijnt hier...

🧠 Kennischeck

📊

Les 3 afgerond!

Je sorteert, pagineert en haalt unieke waarden op — de bouwstenen voor elke lijst-weergave.

Les 4: INSERT / UPDATE / DELETE →