SQL Basics

← Terug naar overzicht

SQL

SQL staat voor Structured Query Language: een gestructureerde manier om vragen aan je database te stellen. SQL bestaat uit verschillende onderdelen:

In dit hoofdstuk focussen we op DML.

SELECT

Met SELECT haal je gegevens op uit de database.

SELECT *
FROM animals
WHERE size = 'medium'

Je kunt ook specifieke kolommen opvragen:

SELECT name, age
FROM animals

Oefening 1

De dierenarts wil een overzicht van alle dieren op de boerderij. Schrijf een query op de tabel animals.

Jouw code:

Oefening 2

De boer wil een naamlijst met leeftijden van zijn dieren. Hij heeft geen interesse in de andere gegevens. Tabel: animals.

Jouw code:

Oefening 3

Welke dieren op de boerderij zijn blauw? Tabel: animals, kleurkolom: color.

Jouw code:

INSERT

Met INSERT voeg je nieuwe rijen toe aan een tabel.

INSERT INTO animals (name, size, species)
VALUES ('Rex', 'medium', 'dog')

Oefening 4

De boer heeft een nieuwe hond gekocht. Het beest heet Bella, is bruin en het is een dog. Voeg haar toe aan de tabel animals (kolommen: name, color, species).

Jouw code:

Oefening 5

Er heeft zich een nieuwe student aangemeld: Lisa de Vries, studentnummer S1099999. Registreer haar in de tabel students (kolommen: voornaam, achternaam, studentnummer).

Jouw code:

UPDATE

Met UPDATE wijzig je bestaande gegevens.

UPDATE animals
SET size = 'large'
WHERE name = 'Rex'

Belangrijk: Gebruik altijd een WHERE-clause bij UPDATE, anders worden alle rijen gewijzigd!

Oefening 6

Teun de kip is geverfd en is nu groen. Pas zijn kleur aan in de tabel animals.

Jouw code:

Oefening 7

Alle kippen op de boerderij zijn vandaag 3 jaar geworden (dat kan, op een boerderij). Pas de leeftijd aan voor alle kippen in animals (diersoort-kolom: animaltype).

Jouw code:

DELETE

Met DELETE verwijder je rijen uit een tabel.

DELETE FROM animals
WHERE name = 'Rex'

Belangrijk: Gebruik altijd een WHERE-clause bij DELETE, anders wordt je hele tabel leeggemaakt!

Oefening 8

Boris is verkocht. Verwijder hem uit de tabel animals.

Jouw code:

Oefening 9

Alle dieren ouder dan 10 jaar gaan met pensioen en worden uit de administratie verwijderd. Tabel: animals.

Jouw code:

WHERE

De WHERE-clause filtert je query. Je kunt het vergelijken met een if-statement in JavaScript: in JS bepaalt een if welke code uitgevoerd wordt, in SQL bepaalt WHERE op welke rijen de query betrekking heeft.

Vergelijkingsoperatoren:

Oefening 10

De dierenarts wil alle jonge dieren inenten. Geef een lijst van dieren die nog geen 5 jaar oud zijn. Tabel: animals.

Jouw code:

Oefening 11

De boer heeft een hekel aan rode dieren. Geef hem een lijst van alle dieren die NIET rood zijn. Tabel: animals.

Jouw code:

AND / OR

Met AND en OR combineer je meerdere voorwaarden. Vergelijk AND met && en OR met || in JavaScript.

SELECT * FROM animals
WHERE species = 'dog' AND size = 'large'

Let op de volgorde: AND wordt voor OR uitgevoerd. Gebruik haakjes om de volgorde te bepalen:

-- Fout: geeft alle honden + alle 7-jarige katten
SELECT * FROM animals
WHERE species = 'dog' OR species = 'cat' AND age = 7

-- Goed: geeft alle 7-jarige honden en katten
SELECT * FROM animals
WHERE (species = 'dog' OR species = 'cat') AND age = 7

Belangrijk: Herhaal altijd de kolomnaam bij elke vergelijking!

-- Fout:
WHERE age > 5 AND < 10

-- Goed:
WHERE age > 5 AND age < 10

Oefening 12

De boer zoekt een specifiek dier: het is geel en mannelijk. Welke dieren komen in aanmerking? Tabel: animals, kolommen: color, gender.

Jouw code:

Oefening 13

De veearts komt langs voor de kippen en koeien. Welke dieren moet hij bekijken? Tabel: animals, kolom: animaltype.

Jouw code:

Oefening 14

De veearts wil alleen de kippen en koeien zien die ouder zijn dan 5 jaar. Zorg dat de query correct werkt (let op de volgorde van AND/OR!). Tabel: animals.

Jouw code:

ORDER BY

Met ORDER BY sorteer je de resultaten. Standaard wordt oplopend (ASC) gesorteerd. Met DESC sorteer je aflopend.

SELECT * FROM animals ORDER BY age DESC

Oefening 15

De boer wil zijn dieren op alfabetische volgorde zien. Tabel: animals, kolom: name.

Jouw code:

Oefening 16

Welk dier gaat het eerste met pensioen? Toon alle dieren met de oudste bovenaan. Tabel: animals.

Jouw code:

LIMIT en OFFSET

Met LIMIT beperk je het aantal resultaten. Met OFFSET sla je rijen over. Dit is essentieel voor paginering.

-- Eerste 5 resultaten
SELECT * FROM animals LIMIT 5

-- Resultaten 11 t/m 15 (pagina 3 met 5 per pagina)
SELECT * FROM animals LIMIT 5 OFFSET 10

Oefening 17

De boer wil alleen de eerste 3 dieren zien die de database teruggeeft. Tabel: animals.

Jouw code:

Oefening 18

Je bouwt een webshop. Op elke pagina staan 10 producten, gesorteerd op prijs (goedkoopste eerst). De klant zit op pagina 3. Schrijf de query. Tabel: products, kolom: prijs.

Jouw code: