WHERE#

%LOAD ../data/employees.db

Om een query te maken heb je minstens een SELECT en een FROM nodig. Met WHERE kun je het aantal rijen dat getoond moet worden beperken. De WHERE bevat een bepaalde voorwaarde waaraan voldaan moet worden.

Met onderstaande query toon je alle employees.

SELECT employee_id, first_name, last_name
FROM employees;
employee_id first_name last_name
100 Steven King
101 Neena Kochhar
102 Lex De Haan
103 Alexander Hunold
104 Bruce Ernst
107 Diana Lorentz
124 Kevin Mourgos
141 Trenna Rajs
142 Curtis Davies
143 Randall Matos
144 Peter Vargas
149 Eleni Zlotkey
174 Ellen Abel
176 Jonathon Taylor
178 Kimberely Grant
200 Jennifer Whalen
201 Michael Hartstein
202 Pat Fay
205 Shelley Higgins
206 William Gietz

Door een WHERE toe te voegen kun je het aantal rijen beperken. Stel dat je alleen gegevens wil tonen van het personeelslid King.

SELECT employee_id, first_name, last_name
FROM employees
WHERE last_name = 'King';
employee_id first_name last_name
100 Steven King

Als je zijn employee_id weet, kan het ook zo:

SELECT employee_id, first_name, last_name
FROM employees
WHERE employee_id = 100;
employee_id first_name last_name
100 Steven King

Merk op dat je bij zijn achternaam (tekst) wel enkele aanhalingstekens gebruikt en bij zijn employee_id (nummer) niet. Ook bij datums gebruik je enkele aanhalingstekens.

De volgende rekenkundige operatoren kun je gebruiken in de WHERE:

  • = gelijk aan

  • > groter dan

  • >= groter dan of gelijk aan

  • < kleiner dan

  • <= kleiner dan of gelijk aan

  • <> of != ongelijk aan

SELECT employee_id, last_name, department_id
FROM employees
WHERE department_id = 90;
employee_id last_name department_id
100 King 90
101 Kochhar 90
102 De Haan 90

Wie verdient er 12000 of meer?

SELECT last_name, salary
FROM employees
WHERE salary >= 12000;
last_name salary
King 24000
Kochhar 17000
De Haan 17000
Hartstein 13000
Higgins 12000

Wie werkt er allemaal op de afdeling IT_PROG?

SELECT last_name, job_id
FROM employees
WHERE job_id = 'IT_PROG';
last_name job_id
Hunold IT_PROG
Ernst IT_PROG
Lorentz IT_PROG

Wie is er in dienst gekomen vanaf 1 januari 1998?

SELECT last_name, hire_date
FROM employees
WHERE hire_date >= '1998-01-01';
last_name hire_date
Lorentz 1999-02-07
Mourgos 1999-11-16
Matos 1998-03-15
Vargas 1998-07-09
Zlotkey 2000-01-29
Taylor 1998-03-24
Grant 1999-05-24

Wie was er al in dienst vóór 1 januari 1998?

SELECT last_name, hire_date
FROM employees
WHERE hire_date <= '1998-01-01';
last_name hire_date
King 1987-06-17
Kochhar 1989-09-21
De Haan 1993-01-13
Hunold 1990-01-03
Ernst 1991-05-21
Rajs 1995-10-17
Davies 1997-01-29
Abel 1996-05-11
Whalen 1987-09-17
Hartstein 1996-02-17
Fay 1997-08-17
Higgins 1994-06-07
Gietz 1994-06-07

Toon alle werknemers behalve de hoogste baas. Dat is de werknemer met als job_title AD_PRES. Dus King mag er niet in het antwoord voor komen.

SELECT first_name, last_name, job_id
FROM employees
WHERE job_id <> 'AD_PRES';
first_name last_name job_id
Neena Kochhar AD_VP
Lex De Haan AD_VP
Alexander Hunold IT_PROG
Bruce Ernst IT_PROG
Diana Lorentz IT_PROG
Kevin Mourgos ST_MAN
Trenna Rajs ST_CLERK
Curtis Davies ST_CLERK
Randall Matos ST_CLERK
Peter Vargas ST_CLERK
Eleni Zlotkey SA_MAN
Ellen Abel SA_REP
Jonathon Taylor SA_REP
Kimberely Grant SA_REP
Jennifer Whalen AD_ASST
Michael Hartstein MK_MAN
Pat Fay MK_REP
Shelley Higgins AC_MGR
William Gietz AC_ACCOUNT