Database queries

CRUD

CRUD staat voor CReate, Update en Delete. Het toevoegen, aanpassen of verwijderen van records uit een tabel. Stel dat er nieuwe cursist zich heeft aangemeld. De cursist moet worden toegevoegd aan de tabel cursist.

Records toevoegen

Om records toe te kunnen voegen aan de tabel moet helder zijn wat de structuur van de tabel is. Hieronder worden de velden weergegeven met hun eigenschappen. Zo kun je zien dat de postcode van het type varchar moet zijn en maximaal 7 karakters mag hebben. varchar staat voor variabel aantal karakters. In de kolom 'Null' staat bij ieder veld 'YES'. Dit betekent dat dit veld leeg gelaten mag worden. Het is dus niet nodig om alle gegevens te gebruiken voor het aanmaken van een nieuwe cursist!

show fields from cursist;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| cursistnr | varchar(4) | YES | | NULL | |
| naam | varchar(25) | YES | | NULL | |
| roepnaam | varchar(25) | YES | | NULL | |
| straat | varchar(25) | YES | | NULL | |
| postcode | varchar(7) | YES | | NULL | |
| plaats | varchar(25) | YES | | NULL | |
| geslacht | varchar(1) | YES | | NULL | |
| geb_datum | date | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+

Stel 'Kees Stofman' moet worden toegevoegd. Van 'Kees' is zijn naam, zijn postcode en plaats bekend...

insert into cursist (cursistnr, roepnaam, postcode, plaats) 
values (92, 'Kees', '4889 HJ', 'Rotterdam');

Query OK, 1 row affected (0,00 sec)

Met insert into cursist wordt aangegeven dat er een record toegevoegd gaat worden aan de tabel 'cursist'. Tussen aanhalingstekens volgen dan de veldnamen waar waarden voor beschikbaar zijn. De waarden die moeten worden toegevoegd staan tussen haakjes achter values. Ze corresponderen met de positie van de velden.

Records updaten

Stel dat inmiddels de geboortedatum van Kees bekend is. Het record van Kees wordt op de volgende manier aangepast.

update cursist set geb_datum = '1999-03-22' where cursistnr = 92;

Query OK, 1 row affected (0,00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

Met update cursist wordt aangegeven dat het om de tabel cursist gaat. Met set geb_datum = '1999-03-22' wordt aangegeven welk veld aangepast moet worden. Gelukkig heeft Kees ook een uniek cursistnummer gekregen zo is precies bekend welke 'Kees' aangepast moet worden. Je kunt meerdere records tegelijk aanpassen, dus zorg ervoor dat de where-clause klopt! Zonder where-clause wordt van alle records in de tabel de geboortedatum aangepast. PS: De where-clause is het gedeelte van de query dat na where komt.

Records verwijderen

Om een record te kunnen verwijderen is weer een unieke waarde nodig zoals 'cursistnr'. Met cursistnr wordt aangegeven welk record precies verwijdert moet worden.

delete from cursist where cursistnr = 92;

Query OK, 1 row affected (0,00 sec)```

Oefeningen