Je schrijft je eerste SQL-query door met SELECT gegevens uit een tabel op te halen. Vervolgens kun je met WHERE gegevens filteren, met ORDER BY sorteren en met JOIN meerdere tabellen combineren.
We gebruiken een fictieve webshop met twee tabellen: Klanten en Bestellingen.
Stap 1: Maak een kleine oefendatabase
Voordat je begint, hebben we enkele voorbeeldgegevens nodig. Kopieer de onderstaande code naar SSMS en selecteer Execute.
DROP TABLE IF EXISTS #Bestellingen;
DROP TABLE IF EXISTS #Klanten;
CREATE TABLE #Klanten (
KlantID INT,
Naam NVARCHAR(50)
);
INSERT INTO #Klanten VALUES
(1, 'Emma'),
(2, 'Lucas'),
(3, 'Sophie');
CREATE TABLE #Bestellingen (
BestellingID INT,
KlantID INT,
Bedrag DECIMAL(10,2)
);
INSERT INTO #Bestellingen VALUES
(101, 1, 120.00),
(102, 2, 85.00),
(103, 1, 230.00);
Deze code maakt twee tijdelijke tabellen aan en vult ze met gegevens.
Je hoeft deze code nog niet volledig te begrijpen. Het belangrijkste is dat je nu gegevens hebt waarmee je kunt oefenen. De tabellen blijven beschikbaar zolang je dezelfde verbinding gebruikt en verdwijnen wanneer de sessie wordt afgesloten.
Stap 2: Gebruik SELECT om gegevens op te halen
Met SELECT bepaal je welke gegevens je uit een tabel wilt zien.
Voer de volgende query uit:
SELECT Naam
FROM #Klanten;
Je krijgt drie namen te zien:
SELECT bepaalt welke kolom je wilt bekijken. Met FROM geef je aan uit welke tabel de gegevens moeten komen.
Wil je alle kolommen bekijken? Dan kun je SELECT * gebruiken.
Stap 3: Filter gegevens met WHERE
Met WHERE kun je specifieke gegevens selecteren die aan een bepaalde voorwaarde voldoen.
Stel dat je alleen bestellingen wilt zien met een waarde boven € 100.
SELECT *
FROM #Bestellingen
WHERE Bedrag > 100;
Je krijgt nu twee bestellingen te zien: één van € 120 en één van € 230.
Het teken > betekent ‘groter dan’. Je kunt ook andere vergelijkingen gebruiken, zoals < voor kleiner dan en = voor gelijk aan.
Stap 4: Sorteer gegevens met ORDER BY
Met ORDER BY bepaal je in welke volgorde de resultaten verschijnen.
Wil je de bestellingen van het hoogste naar het laagste bedrag sorteren? Gebruik dan:
SELECT *
FROM #Bestellingen
ORDER BY Bedrag DESC;
De resultaten worden nu weergegeven in deze volgorde:
DESC betekent aflopend sorteren. Wil je juist van laag naar hoog sorteren? Gebruik dan ASC.
Je kunt WHERE en ORDER BY ook combineren om bijvoorbeeld alleen bestellingen boven € 100 te tonen, gesorteerd op bedrag.
Stap 5: Combineer tabellen met JOIN
Een JOIN gebruik je om gegevens uit meerdere tabellen met elkaar te combineren. Dat is handig wanneer informatie verspreid staat over verschillende tabellen.
In ons voorbeeld staat de naam van de klant in de tabel Klanten, terwijl de bestelling in de tabel Bestellingen staat.
Met de volgende query combineren we deze gegevens:
SELECT k.Naam, b.Bedrag
FROM #Klanten AS k
INNER JOIN #Bestellingen AS b
ON k.KlantID = b.KlantID;
Het resultaat is:
| Naam |
Bedrag |
| Emma |
€ 120 |
| Lucas |
€ 85 |
| Emma |
€ 230 |
De INNER JOIN koppelt de tabellen via KlantID. Hierdoor zie je welke klant bij welke bestelling hoort. Sophie verschijnt niet, omdat zij geen bestelling heeft geplaatst.
De afkortingen k en b maken de query overzichtelijker.
Gefeliciteerd! e hebt nu verschillende SQL-query’s geschreven en zelfs gegevens uit twee tabellen gecombineerd.