Rekenkundige operatoren#

%LOAD ../data/example.db

Met kolommen die getallen bevatten kun je rekenen. SQL kent vier rekenkundige operatoren. Je gebruikt daarbij de volgende symbolen:

  • + optellen

  • - aftrekken

  • * vermenigvuldigen

  • / delen

De volgorde waarin je berekeningen moet toepassen is: * / + - Dus eerst vermenigvuldigen, dan delen, dan optellen en tenslotte aftrekken.

Bij 12 * salary + 100 moet je eerst 12 keer salary nemen en daar 100 bij optellen.

Je kunt haakjes gebruiken om de volgorde te forceren, net zoals je dat bij wiskunde hebt geleerd.

Bij 12 * (salary + 100) moet je vanwege de haakjes eerst bij salary 100 optellen en dat met 12 vermenigvuldigen.

SELECT last_name, salary, 12 * salary + 100, 12 * (salary + 100)
FROM employees
WHERE last_name = 'King';
last_name salary 12 * salary + 100 12 * (salary + 100)
King 24000 288100 289200
SELECT last_name AS achternaam, salary AS maandsalaris, salary * 12 AS jaarsalaris
FROM employees;
achternaam maandsalaris jaarsalaris
King 24000 288000
Kochhar 17000 204000
De Haan 17000 204000
Hunold 9000 108000
Ernst 6000 72000
Lorentz 4200 50400
Mourgos 5800 69600
Rajs 3500 42000
Davies 3100 37200
Matos 2600 31200
Vargas 2500 30000
Zlotkey 10500 126000
Abel 11000 132000
Taylor 8600 103200
Grant 7000 84000
Whalen 4400 52800
Hartstein 13000 156000
Fay 6000 72000
Higgins 12000 144000
Gietz 8300 99600

Als alle werknemers bijvoorbeeld 10% opslag krijgen, kun je dat als volgt doen.

SELECT last_name AS werknemer
,      salary AS huidige_salaris
,      salary * 0.1 AS opslag
,      salary + salary * 0.1 AS nieuwe_salaris
FROM employees;
werknemer huidige_salaris opslag nieuwe_salaris
King 24000 2400.0 26400.0
Kochhar 17000 1700.0 18700.0
De Haan 17000 1700.0 18700.0
Hunold 9000 900.0 9900.0
Ernst 6000 600.0 6600.0
Lorentz 4200 420.0 4620.0
Mourgos 5800 580.0 6380.0
Rajs 3500 350.0 3850.0
Davies 3100 310.0 3410.0
Matos 2600 260.0 2860.0
Vargas 2500 250.0 2750.0
Zlotkey 10500 1050.0 11550.0
Abel 11000 1100.0 12100.0
Taylor 8600 860.0 9460.0
Grant 7000 700.0 7700.0
Whalen 4400 440.0 4840.0
Hartstein 13000 1300.0 14300.0
Fay 6000 600.0 6600.0
Higgins 12000 1200.0 13200.0
Gietz 8300 830.0 9130.0

Rekenkundige operatoren kunnen alleen op getallen worden toegepast op één uitzondering na: ook met datums kun je rekenen. Als je twee datums van elkaar aftrekt, krijg je als resultaat het verschil in dagen. Bovendien kun je bij een datum met behulp van een getal een aantal dagen optellen.