SQLTutorial.nl

Where

Door het toevoegen van het WHERE statement aan de select query, wordt het mogelijk om alleen de records weer te geven die aan de gestelde criteria voldoen. Het is op deze manier mogelijk enkel personen van het mannelijke geslacht te tonen of personen met een saldo dat hoger is dan 1000 euro.

Het where statement wordt achter het select query toegevoegd en begint met WHERE. Dit wordt gevolgd door de kolomnaam waaraan het criterium moet voldoen. Hierna wordt de operator beschreven (moet gelijk zijn/ niet gelijk zijn enz.) en als laatste wordt de waarde beschreven.

De syntax van een select query met een where criterium ziet er als volgt uit:

SELECT kolomnaam
FROM tabelnaam
WHERE kolomnaam operator waarde

Voorbeeld

De "Persoon" tabel ziet er als volgt uit:

id Voornaam Achternaam Woonplaats Geslacht
1 Henk Janssen Amsterdam M
2 Petra de klomp Nijmegen V
3 Sjoerd Vermeulen Amsterdam M
4 Mieke Sterk Amsterdam V

Om alle personen met als woonplaats Amsterdam op te vragen zal de volgende query uitgevoerd worden.

SELECT *
FROM persoon
WHERE Woonplaats = 'Amsterdam'

id Voornaam Achternaam Woonplaats Geslacht
1 Henk Janssen Amsterdam M
3 Sjoerd Vermeulen Amsterdam M
4 Mieke Sterk Amsterdam V

Door het veranderen van de operator is het mogelijk om alle personen die niet woonachtig zijn in Amsterdam als resultaat terug te geven. Gebruik hiervoor onderstaande query.

SELECT *
FROM persoon
WHERE Woonplaats <> 'Amsterdam'

id Voornaam Achternaam Woonplaats Geslacht
2 Petra de klomp Nijmegen V



De volgende operators worden in de WHERE clausule ondersteunt.
Operator Beschrijving
= Gelijk aan.
De waarde in de kolom moet gelijk zijn als de waarde die wordt meegegeven.
<> Niet gelijk aan.
De waarde in de kolom is niet gelijk aan de meegegeven waarde.
> Groter dan.
De kolomwaarde is groter dan de meegegeven waarde.
< Kleiner dan.
De kolomwaarde is kleinder dan de meegegeven waarde.
>= Groter dan of gelijk aan.
De kolomwaarde is groter dan, of gelijk aan de meegegeven waarde.
>= Kleiner dan of gelijk aan.
De kolomwaarde is kleinder dan, of gelijk aan de meegegeven waarde.
BETWEEN binnen een bepaalde range.
De kolomwaarde valt binnen een opgegeven reeks.
LIKE deels overeenkomstig.
Een deel van de kolomwaarde voldoet aan de meegegeven waarde.
IN Een kolomwaarde komt overeen met één van de verschillende waardes die zich binnen het in statement bevind.


Meerdere criteria

Het is mogelijk om meerdere criteria toe te voegen aan de WHERE clausule. Dit kan gedaan worden met de AND, OR en NOT commando's.


AND

Met AND moet de WHERE clausule aan beide criteria voldoen. Als we alle personen uit Amsterdam met een mannelijk geslacht willen hebben, dan zie de query er als volgt uit.

SELECT *
FROM persoon
WHERE Woonplaats = 'Amsterdam'
AND Geslacht = 'M'

id Voornaam Achternaam Woonplaats Geslacht
1 Henk Janssen Amsterdam M
3 Sjoerd Vermeulen Amsterdam M



OR

OR wordt gebruikt als minimaal één criteria aan de where clausule moet voldoen. Als we alle personen uit Nijmegen of van het mannelijke geslacht willen tonen, dan gebruiken we onderstaande query:

SELECT *
FROM persoon
WHERE Woonplaats = 'Amsterdam'
OR Geslacht = 'V'

id Voornaam Achternaam Woonplaats Geslacht
1 Henk Janssen Amsterdam M
2 Petra de klomp Nijmegen V
3 Sjoerd Vermeulen Amsterdam M


Combineren

De AND en OR kunnen gecombineerd worden binnen een WHERE clausule. In onderstaand voorbeeld een resultaat opgebouwd van alle personen die als achternaam Janssen hebben en als voornaam Henk of Petra.

SELECT *
FROM persoon
WHERE Achternaam = 'Janssen'
AND (Voornaam='Henk' OR Voornaam='Petra')

id Voornaam Achternaam Woonplaats Geslacht
1 Henk Janssen Amsterdam M






NOT

Met NOT kan de bewering in de WHERE clausule omgedraaid worden. Als we een overzicht willen maken met personen, die niet woonachtig zijn in Nijmegen, dan zou deze query er als volgt uit komen te zien.

SELECT *
FROM persoon
WHERE NOT Woonplaats = 'Nijmegen'

id Voornaam Achternaam Woonplaats Geslacht
1 Henk Janssen Amsterdam M
3 Sjoerd Vermeulen Amsterdam M
4 Mieke Sterk Amsterdam V

Dit geeft een vergelijkbaar resultaat als de <> operator gebruikt zou worden.

SELECT *
FROM persoon
WHERE Woonplaats <> 'Nijmegen'