Null

Null is in de informatica een term die vaak gebruikt wordt om een ontbrekende (of onbekende) waarde aan te duiden. Nullwaarden worden gebruikt in diverse programmeertalen en in databases.

In programmeertalen

Null wordt in programmeertalen onder andere gebruikt om aan te geven dat een variabele gedeclareerd is, maar dat de waarde ervan onbepaald is. Hiervoor worden soms ook de benamingen nil, undef, Nothing of void gebruikt.

Dit kan gebeuren

  • wanneer er wordt verwezen naar geheugenruimte waarvan de inhoud onbekend is,
  • wanneer de variabele (nog) niet doorverwijst naar een geheugenruimte (een zogenaamde null-pointer).

In sommige programmeertalen (bijvoorbeeld C) is null niet meer dan een speciale constante. In sommige andere talen is er een datatype null met maar één mogelijke waarde, ook null genoemd.

Null in definitie van types

Sommige programmeertalen laten het toe om per type aan te geven of het type nullable is of niet. Dit is behulpzaam tijdens het programmeren omdat dan al fouten kunnen worden gedetecteerd versus tijdens run-time.

De aanduiding ? wordt dan gebruikt om aan te geven dat een type nullable is e.g. int? mijn_integer

In aanvulling geven programmeertalen ondersteuning hiervan op sommige types of "alle" complexe types, referentie types of/en value types en aanvullende operaties en "syntactical sugar" om null coalesce en aanvullende operaties toe te passen types die nullable zijn. In code zoals mijnwaarde ??= "wikipedia" ; if (mijnwaarde.HasValue()) { print mijnwaarde.Value();}

SQL

In SQL heeft NULL een speciale betekenis, en hoe ermee om te gaan is niet triviaal. Verschillende commerciële producten hebben een verschillende aanpak en zelfs relationele databasetheoretici verschillen van mening omtrent de behandeling/ondersteuning van NULL-waarden.

Over het algemeen kan men stellen dat als variabele a een NULL-waarde bevat en variabele b ook,

  • ze toch niet aan elkaar gelijk zijn.
  • ze eveneens niet ongelijk zijn

Dat lijkt wat vreemd maar is best te begrijpen wanneer men de waarden ziet als 'onbekend', men weet eenvoudig niet of ze gelijk dan wel ongelijk zijn. Een voorbeeld van dit vreemde null-gedrag ziet u in de figuur hieronder (screenshot van MS SQL Server Query Analyser).

Null in aggregaatsfuncties

Over null in aggregaatfuncties bestaat er een grote consensus: nullwaarden worden genegeerd.

Deze aanpak zal in praktijk meestal tot bevredigende resultaten leiden: wanneer we willen weten wat bijvoorbeeld de gemiddelde leeftijd is van een grote populatie zal het negeren van nullwaarden de reële leeftijd veel meer benaderen dan wanneer de nullwaarden bijvoorbeeld worden vervangen door het getal 0.

Unix

In Unixachtige besturingssystemen is null de naam van het specifieke bestand /dev/null. Dit virtueel bestand vormt een soort zwart gat van het systeem.[1] Alle uitvoer naar dit bestand verdwijnt in het niets.