Skip to main content

Definitie en juiste gebruik van NULL-waarden

Losing the Battle (Juni- 2026)

Losing the Battle (Juni- 2026)
Anonim

Gebruikers die nieuw zijn in de wereld van databases, worden vaak verward door een speciale waarde die specifiek is voor het veld: de NULL-waarde. Deze waarde kan worden gevonden in een veld dat elk type gegevens bevat en heeft een zeer speciale betekenis binnen de context van een relationele database. Het is waarschijnlijk het beste om onze discussie over NULL te beginnen met een paar woorden over wat NULL is niet :

  • NULL is niet het getal nul.
  • NULL is niet de waarde van de lege string ("").

    Integendeel, NULL is de waarde die wordt gebruikt om een ​​onbekend gegeven te vertegenwoordigen. Databaseprogrammeurs gebruiken vaak de uitdrukking "een NULL-waarde", maar dit is onjuist. Let op: een NULL is een onbekende waarde waarbij het veld leeg lijkt.

    NULL in de echte wereld

    Laten we een eenvoudig voorbeeld bekijken: een tabel met de inventaris voor een fruitstand. Stel dat onze inventaris 10 appels en drie sinaasappels bevat. We hebben ook pruimen in voorraad, maar onze inventarisinformatie is onvolledig en we weten niet hoeveel (indien aanwezig) pruimen op voorraad zijn. Met behulp van de NULL-waarde zouden we de voorraadtabel hebben die wordt weergegeven in de onderstaande tabel.

    Fruitstands inventaris

    InventoryIDItemAantal stuks
    1Appels10
    2sinaasappels3
    3pruimenNUL

    Het zou duidelijk onjuist zijn om een ​​hoeveelheid 0 op te nemen voor de pruimenrecord, omdat dat zou impliceren dat we dat hadden gedaan Nee pruimen in de inventaris. Integendeel, we hebben misschien wat pruimen, maar we weten het gewoon niet zeker.

    NULL of NIET NULL?

    Een tabel kan worden ontworpen om NULL-waarden al dan niet toe te staan.

    Hier is een SQL-voorbeeld dat een tabel met inventarissen maakt die enkele NULL's toestaat:

    SQL> CREATE TABLE INVENTORY (InventoryID INT NOT NULL, Item VARCHAR (20) NOT NULL, Quantity INT);

    In de tabel Voorraad staan ​​hier geen NULL-waarden voor de InventoryID en de Item kolommen, maar laat ze toe voor de Aantal stuks kolom.

    Hoewel het toestaan ​​van een NULL-waarde perfect is, kunnen NULL-waarden problemen veroorzaken, omdat elke vergelijking van waarden waarbij één NULL is altijd resulteert in NULL.

    Als u wilt controleren of uw tabel NULL-waarden bevat, gebruikt u de operator IS NULL of IS NOT NULL. Hier is een voorbeeld van IS NULL:

    SQL> SELECT INVENTORYID, ITEM, HOEVEELHEID UIT INVENTARIS WAAR DE HOEVEELHEID NIET NULL IS;

    Gezien ons voorbeeld hier zou dit terugkeren:

    InventoryIDItemAantal stuks
    3pruimen

    Werkt op NULLEN

    Het werken met NULL-waarden levert vaak NULL-resultaten op, afhankelijk van de SQL-bewerking. Stel dat A NULL is:

    Rekenkundige operatoren

    • A + B = NULL
    • A - B = NULL
    • A * B = NULL
    • A / B = NULL

    Vergelijkingsoperatoren

    • A = B = NULL
    • A! = B = NULL
    • A> B = NULL
    • A! <B = NULL

    Dit zijn slechts enkele voorbeelden van operatoren die dat wel zullen doen altijd return NULL als één operand NULL is. Veel complexere query's bestaan, en ze worden allemaal gecompliceerd door NULL-waarden. Het beginpunt is dat, als u NULL-waarden in uw database toestaat, de implicaties begrijpt en deze plant.

    Dat is NULL in een notendop!