10.4. Toevoegen en bewerken met INSERT, UPDATE, DELETE

Gegeven toeveoegen aan een tabel
Met INSERT voegen we gegevens toe aan een tabel. De basis syntax is:

INSERT INTO tabel (kolommen) VALUES ('waarden') ;

Als je een nieuw vak wilt toevoegen aan de tabel sbrunekreef, dan kan dat met de volgende query:

INSERT INTO sbrunekreef (id, vak, cijfer, datum) VALUES ('','scheikunde','73','2017-10-17');

Als je deze uit laat voeren, dan zie je dat er een rij aan de tabel sbrunekreef is toegevoegd:

SELECT * FROM sbrunekreef;

Een andere manier is dit:

INSERT INTO sbrunekreef VALUES ('','scheikunde','73','2017-10-17');

Je ziet dat nu de kolomnamen zijn weggelaten en alleen de waarden worden beschreven. Dan moet wel aan elke kolom een waarde worden gegeven, en in de goede volgorde!

Bij de eerste manier hoef je niet elke kolom een waarde te geven.

Bij MySQL bestaat het commando auto_increment, dat betekent dat die kolom automatisch met één wordt opgehoogd.
Als de kolom id van de tabel leden in MySQL auto_increment is, dan heeft het geen zin die kolom zelf een waarde te geven.

Het wijzigen van gegeven in een tabel
Het wijzigen van gegevens gebeurt met het commando UPDATE. De basis syntax is:

UPDATE tabel
SET kolom1 = 'waarde1', kolom2 = 'waarde2', kolom3 = 'waarde3', enz
WHERE voorwaarden ;

Stel dat je de tabel sbrunekreef wilt aanpassen omdat je je hebt vergist: het vak moest NLT zijn en het cijfer een 7,6 i.p.v. een 7.3. Het id wat daarbij hoort is 1

Deze wijziging wordt ingevoerd m.b.v. de query:

UPDATE sbrunekreef
SET vak = 'NLT', cijfer = 76
WHERE id = 1;

Als je de laatste regel weglaat (dus WHERE id = 1 ) dan wordt ieder vak gewijzigd in NLT, en alle scores worden 7,6. En dat is natuurlijk niet de bedoeling.
Let er daarom op dat je zoveel mogelijk de unieke waarde (of primairy key), in dit geval dus id, neemt als voorwaarde voor een enkele rij met UPDATE.

Stel je voor dat bij elk cijfer van scheikunde de score met 0,5 verhoogd moet worden, dan kan dat met de volgende query:

UPDATE sbrunekreef
SET cijfer = cijfer + 5 WHERE vak = 'scheikunde' ;

Rijen uit een tabel verwijderen
Het verwijderen van rijen uit een tabel gebeurt met het commando DELETE. De basis syntax is:

DELETE FROM tabel
WHERE voorwaarden ;

Dit commando verwijdert hele rijen tegelijk, het is dus heel belangrijk om duidelijk aan te geven aan welke voorwaarden de te verwijderen rijen moeten voldoen om niet de verkeerde gegevens te verwijderen. Als je de voorwaarden weg laat dan worden alle rijen uit de tabel verwijderd!

Stel dat de docent scheikunde wegens fraude het cijfer niet laat meetellen, dan kan deze uit de tabel worden verwijderd.
De query wordt dan:

DELETE FROM sbrunekreef
WHERE id = 1 ;

Net zoals bij UPDATE maken we bij de voorwaarden bij DELETE zoveel mogelijk gebruik van de unieke waarde (of primairy key), hier dus het id.
Zouden we de volgende query gebruiken:

DELETE FROM sbrunekreef
WHERE vak = 'scheikunde' ;

dan zouden alle rijen met het vak 'scheikunde' worden verwijderd.