sql select where simpel voorbeeld

SQL SELECT WHERE: filter precies wat jij wilt [TUTORIAL]

Wie gegevens opvraagt uit relationele databases met SQL zal niet altijd hele tabellen nodig hebben. Als je veel data opvraagt met een SQL query dan kan de output onoverzichtelijk worden en daarmee lastig te interpreteren.

In dit blog gaan we in op de SQL SELECT WHERE statement, waarmee je rijen uit een tabel selecteert die aan de gestelde conditie(s) voldoen.

Wil je op je eigen computer meedoen met deze tutorial? Volg dan deze stappen om SQL en PgAdmin te installeren. Ook de database die we gebruiken in dit blog download je op voorgaande installatiepagina.

Inhoud

Wat is het SQL SELECT WHERE statement?

Men gebruikt WHERE binnen SQL om condities te specificeren waar de rijen die als output worden gegeven aan dienen te voldoen.

Op SELECT na zul je de WHERE clausule het allermeest gebruiken als je met SQL aan de slag gaat.

Ook interessant: een volledige uitleg van SQL SELECT

De syntax heeft de volgende structuur: SELECT column FROM tabel WHERE conditie;

In bovenstaande syntax zie je terug dat je zelf een conditie dient te specificeren wanneer je WHERE gebruikt in jouw SQL statement. In deze conditie kun je gebruikmaken van:

  1. Vergelijkings-operatoren: hiermee bedoelen we vergelijkingen als bijvoorbeeld "A is groter dan B" (A > B) die resulteren in WAAR of ONWAAR. Nadere uitleg en voorbeelden volgen in de volgende paragraaf.
  2. Logische operatoren: hiermee bedoelen we AND, OR, en NOT. Dankzij deze logische operatoren kunnen we tegelijkertijd meerdere vergelijks-operatoren inzetten om zeer specifieke output op te vragen. Hier gaan we ook voorbeelden van laten zien.

Voorbeeldtoepassingen van SQL SELECT WHERE

Nu zullen we laten zien hoe je een SQL SELECT WHERE statement gebruikt in de praktijk. Hiervoor gebruiken we de IMDb voorbeeld dataset die beschreven staat op deze pagina. Je kunt de dataset ook downloaden via de pagina en als je nog geen mogelijkheid hebt om met SQL te werken op jouw computer dan kun je deze installatie-stappen volgen. In de installatiestappen laten we ook zien hoe je de IMDb database configureert op jouw computer.

We zullen in al onze voorbeelden binnen dit blog gebruik maken van de tabel actors, oftewel de tabel met acteurs die voorkomen in de verschillende films in de database.

Om een indruk te krijgen van de tabel voeren we de volgende query uit:

SELECT *
FROM actors;

sql select where indruk data

We zien dat onze tabel een column bevat met id's, een met voornamen, een met achternamen, een met gender ("M" of "F") en een column met het aantal films waarin een acteur voor komt. Nu we een indruk hebben van alle data kunnen we gaan filteren door gebruik te maken van WHERE.

Vergelijkings-operatoren inzetten i.c.m. SQL SELECT WHERE

Door WHERE te gebruiken wordt iedere rij aan de gestelde conditie onderworpen. Het resultaat kan zijn WAAR (de rij wordt getoond in de output) of ONWAAR (de rij wordt niet getoond in de output).

Vergelijkings-operatoren die gebruik kunnen worden zijn:

  • Is gelijk aan (=)
  • Is groter dan (>)
  • Is kleiner dan (<)
  • is groter dan of gelijk aan (>=)
  • is kleiner dan of gelijk aan (<=)
  • is niet gelijk aan (<> of !=)

Zo kunnen we bijvoorbeeld met het volgende SQL statement alle rijen tonen uit de tabel actors waarbij de voornaam van een acteur gelijk is aan Jim.

SELECT *
FROM actors
WHERE first_name = 'Jim';

sql select where simpel voorbeeld

In onze output zien we alle acteurs met voornaam Jim uit onze tabel terug. Doordat we een asterix (*) hebben ingegeven zien we alle columns uit de tabel terug.

Het is ook mogelijk om slechts enkele columns in de output te tonen. Je kunt dan nogsteeds gebruikmaken van vergelijkings-operatoren op een column die niet in de output voor komt. Zo kun je met onderstaande SQL query de voor- en achternamen van acteurs tonen die in meer dan drie films hebben gespeeld.

SELECT first_name, last_name
FROM actors
WHERE film_count > 3;

sql select where uitleg vergelijkingsoperatoren

We zien dat er één acteur is die in meer dan drie films heeft gespeeld en we zien inderdaad dat alleen de columns first_name en last_name als output worden weergegeven.

Logische operatoren inzetten i.c.m. SQL SELECT WHERE

Naast vergelijkings-operatoren kun je SELECT WHERE ook gebruiken in combinatie met de logische operatoren AND, OR, en NOT. Deze logische operatoren geven je de flexibiliteit om diverse vergelijkings-operatoren tegelijk toe te passen op de rijen in een tabel.

Stel je voor dat je bijvoorbeeld de namen wilt weten van vrouwelijke acteurs die in meer dan twee films hebben gespeeld volgens onze tabel. Dit kan met onderstaande query waar door middel van AND twee vergelijks-operatoren worden toegepast op iedere rij. Alleen als een acteur zowel in meer dan twee films heeft gespeeld als vrouw is dan wordt een rij in de output opgenomen.

SELECT first_name, last_name
FROM actors
WHERE film_count > 2 AND gender = 'F';

sql select where logische operatoren

We zien dat slechts één rij in de tabel aan de gestelde condities voldoet. Actrice Uma Thurman heeft in meer dan twee films gespeeld binnen onze dataset.

Tenslotte is het mogelijk om combinaties te maken van logische operatoren. Stel je wilt alleen acteurs zien die in meer dan twee films hebben gespeeld én vrouw zijn óf Kevin heten. Dat is mogelijk met onderstaand SQL statement.

SELECT first_name, last_name
FROM actors
WHERE film_count > 2
AND (gender = 'F' OR first_name = 'Kevin');

sql select where logische operatoren combineren

We wisten al dat Uma in meer dan twee films heeft gespeeld en vrouw is. Hier is tevens Kevin aan toegevoegd die ook in meer dan twee films speelt. Dit klopt, want in een eerder voorbeeld zagen we al dat Kevin Bacon sowieso in meer dan drie films speelt.

Ook interessant:

Wil je nog veel meer leren over SQL? Bekijk dan onze SQL cursus voor data analyse. Door middel van theorie en praktijkoefening wordt er een kwalitatieve basis gelegd. Nadat je deze training hebt gevolgd kun je zelfstandig verder aan de slag. Je kunt ook altijd even contact opnemen via info@datasciencepartners.nl of 020 - 24 43 146 als je een vraag hebt.

by: