SQL leren: Tabellen
Wat is een tabel?
Rosa zet een dampende kop koffie voor je neer. "Voor je ook maar één query schrijft: even kennismaken met onze gegevens."
Wat is een database?
Welkom bij Bonen & Co! Alles wat de zaak weet over klanten, koffie en bestellingen, staat in een database.
Zie het als een digitale archiefkast: alles netjes geordend, zodat je snel terugvindt wat je zoekt.
Tabellen
Een database bestaat uit tabellen. Elke tabel gaat over één soort ding, net als een tabblad in een spreadsheet.
Bonen & Co heeft er vier: klanten, producten, bestellingen en bestelregels. Hier zie je een stukje van de tabel klanten.
SELECT * FROM klanten LIMIT 5| id | naam | stad | lid_sinds | |
|---|---|---|---|---|
| 1 | Lotte Peeters | Gent | lotte@voorbeeld.be | 2023-02-14 |
| 2 | Jonas Claes | Antwerpen | jonas.claes@voorbeeld.be | 2022-11-03 |
| 3 | Amira El Idrissi | Brussel | NULL | 2024-01-20 |
| 4 | Sander de Vries | Utrecht | sander@voorbeeld.nl | 2023-06-08 |
| 5 | Fien Maes | Gent | fien.maes@voorbeeld.be | 2024-03-02 |
Rijen
Elke rij is één klant.
De rij die oplicht, is Lotte Peeters uit Gent. Alles wat we over Lotte weten, staat op die ene lijn.
SELECT * FROM klanten LIMIT 5| id | naam | stad | lid_sinds | |
|---|---|---|---|---|
| 1 | Lotte Peeters | Gent | lotte@voorbeeld.be | 2023-02-14 |
| 2 | Jonas Claes | Antwerpen | jonas.claes@voorbeeld.be | 2022-11-03 |
| 3 | Amira El Idrissi | Brussel | NULL | 2024-01-20 |
| 4 | Sander de Vries | Utrecht | sander@voorbeeld.nl | 2023-06-08 |
| 5 | Fien Maes | Gent | fien.maes@voorbeeld.be | 2024-03-02 |
Kolommen
Elke kolom is één eigenschap, voor alle klanten tegelijk. In de kolom stad staat bij iedereen de woonplaats.
Bovenaan elke kolom staat zijn naam. Die namen heb je straks nodig in je queries.
SELECT * FROM klanten LIMIT 5| id | naam | stad | lid_sinds | |
|---|---|---|---|---|
| 1 | Lotte Peeters | Gent | lotte@voorbeeld.be | 2023-02-14 |
| 2 | Jonas Claes | Antwerpen | jonas.claes@voorbeeld.be | 2022-11-03 |
| 3 | Amira El Idrissi | Brussel | NULL | 2024-01-20 |
| 4 | Sander de Vries | Utrecht | sander@voorbeeld.nl | 2023-06-08 |
| 5 | Fien Maes | Gent | fien.maes@voorbeeld.be | 2024-03-02 |
De sleutel
De kolom id geeft elke klant een uniek nummer. Zo'n kolom heet de sleutel: geen twee klanten hebben hetzelfde id.
Zo weet je altijd precies wie je bedoelt, ook als er ooit twee klanten Lotte Peeters heten.
SELECT * FROM klanten LIMIT 5| id | naam | stad | lid_sinds | |
|---|---|---|---|---|
| 1 | Lotte Peeters | Gent | lotte@voorbeeld.be | 2023-02-14 |
| 2 | Jonas Claes | Antwerpen | jonas.claes@voorbeeld.be | 2022-11-03 |
| 3 | Amira El Idrissi | Brussel | NULL | 2024-01-20 |
| 4 | Sander de Vries | Utrecht | sander@voorbeeld.nl | 2023-06-08 |
| 5 | Fien Maes | Gent | fien.maes@voorbeeld.be | 2024-03-02 |
Tabellen werken samen
Tabellen verwijzen naar elkaar met die sleutels. In de tabel bestellingen staat geen naam, maar een klant_id.
Dat is het id van de klant die de bestelling plaatste. Zo hoef je de gegevens van een klant maar één keer te bewaren.
SELECT * FROM bestellingen LIMIT 4| id | klant_id | datum | status |
|---|---|---|---|
| 1 | 1 | 2024-09-02 | geleverd |
| 2 | 2 | 2024-09-03 | geleverd |
| 3 | 4 | 2024-09-05 | geleverd |
| 4 | 1 | 2024-09-12 | geleverd |
SELECT id, naam, stad FROM klanten LIMIT 5| id | naam | stad |
|---|---|---|
| 1 | Lotte Peeters | Gent |
| 2 | Jonas Claes | Antwerpen |
| 3 | Amira El Idrissi | Brussel |
| 4 | Sander de Vries | Utrecht |
| 5 | Fien Maes | Gent |
En dan, SQL
Om iets uit de database te halen, stel je een vraag in SQL. Zo'n vraag heet een query.
Deze query betekent: geef alle kolommen (*) uit (FROM) de tabel klanten. Het resultaat staat eronder.
SELECT * FROM klanten| id | naam | stad | lid_sinds | |
|---|---|---|---|---|
| 1 | Lotte Peeters | Gent | lotte@voorbeeld.be | 2023-02-14 |
| 2 | Jonas Claes | Antwerpen | jonas.claes@voorbeeld.be | 2022-11-03 |
| 3 | Amira El Idrissi | Brussel | NULL | 2024-01-20 |
| 4 | Sander de Vries | Utrecht | sander@voorbeeld.nl | 2023-06-08 |
| 5 | Fien Maes | Gent | fien.maes@voorbeeld.be | 2024-03-02 |
| 6 | Noah Janssens | Leuven | NULL | 2022-09-17 |
| 7 | Emma Bakker | Amsterdam | emma@voorbeeld.nl | 2023-10-30 |
| 8 | Wout Verhoeven | Brugge | wout@voorbeeld.be | 2024-05-11 |
Probeer het zelf
Nu jij. Toon de volledige tabel producten.
Klaar voor meer?
De volledige les heeft 7 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.
Begin aan de les