NULL#

Bij SQL is NULL een belangrijk woord. Als de waarde NULL is, is de inhoud onbeschikbaar, niet bekend of niet van toepassing. NULL is niet hetzelfde als 0 of een spatie, want een 0 is een getal en een spatie is een karakter. Maar soms weet je de inhoud van een kolom niet. We zeggen dan dat de inhoud NULL is.

%LOAD ../data/example.db
SELECT last_name, job_id, salary, commission_pct
FROM employees;
last_name job_id salary commission_pct
King AD_PRES 24000
Kochhar AD_VP 17000
De Haan AD_VP 17000
Hunold IT_PROG 9000
Ernst IT_PROG 6000
Lorentz IT_PROG 4200
Mourgos ST_MAN 5800
Rajs ST_CLERK 3500
Davies ST_CLERK 3100
Matos ST_CLERK 2600
Vargas ST_CLERK 2500
Zlotkey SA_MAN 10500 0.2
Abel SA_REP 11000 0.3
Taylor SA_REP 8600 0.2
Grant SA_REP 7000 0.15
Whalen AD_ASST 4400
Hartstein MK_MAN 13000
Fay MK_REP 6000
Higgins AC_MGR 12000
Gietz AC_ACCOUNT 8300

Als je vermenigvuldigt met NULL is het resultaat ook NULL. Delen door 0 mag niet, maar delen door NULL is wel mogelijk. De inhoud van een deling door NULL is ook NULL.

SELECT last_name
,      job_id
,      salary
,      commission_pct
,      salary * commission_pct
,      salary / commission_pct
FROM employees;
last_name job_id salary commission_pct salary * commission_pct salary / commission_pct
King AD_PRES 24000
Kochhar AD_VP 17000
De Haan AD_VP 17000
Hunold IT_PROG 9000
Ernst IT_PROG 6000
Lorentz IT_PROG 4200
Mourgos ST_MAN 5800
Rajs ST_CLERK 3500
Davies ST_CLERK 3100
Matos ST_CLERK 2600
Vargas ST_CLERK 2500
Zlotkey SA_MAN 10500 0.2 2100.0 52500.0
Abel SA_REP 11000 0.3 3300.0 36666.6666666667
Taylor SA_REP 8600 0.2 1720.0 43000.0
Grant SA_REP 7000 0.15 1050.0 46666.6666666667
Whalen AD_ASST 4400
Hartstein MK_MAN 13000
Fay MK_REP 6000
Higgins AC_MGR 12000
Gietz AC_ACCOUNT 8300