Skip to main content

Definition och korrekt användning av NULL-värden

YouTube Growth Strategies, Business Risks & VaynerMedia's New Office | #AskGaryVee Episode 220 (April 2025)

YouTube Growth Strategies, Business Risks & VaynerMedia's New Office | #AskGaryVee Episode 220 (April 2025)
Anonim

Användare som är nya i databasvärlden förvirras ofta av ett speciellt värde speciellt för fältet - NULL-värdet. Detta värde kan hittas i ett fält som innehåller någon typ av data och har en mycket speciell betydelse inom ramen för en relationsdatabas. Det är nog bäst att börja vår diskussion om NULL med några ord om vad NULL är inte :

  • NULL är inte numret noll.
  • NULL är inte det tomma strängvärdet ("").

    Snarare är NULL det värde som används för att representera en okänd datauppgift. Ofta använder databasprogrammerare uttrycket "ett NULL-värde", men detta är felaktigt. Kom ihåg: en NULL är ett okänt värde där fältet visas tomt.

    NULL i den verkliga världen

    Låt oss ta en titt på ett enkelt exempel: en tabell som innehåller inventeringen för ett fruktställ. Antag att vår inventering innehåller 10 äpplen och tre apelsiner. Vi lager också plommon, men vår lagerinformation är ofullständig och vi vet inte hur många (om några) plommon finns i lager. Med NULL-värdet skulle vi ha inventerings tabellen som visas i tabellen nedan.

    Fruktstativ Inventory

    InventoryIDArtikelKvantitet
    1äpplen10
    2apelsiner3
    3plommonNULL

    Det skulle helt klart vara fel att inkludera en mängd 0 för plommonrekordet, för det skulle innebära att vi hade Nej plommon i lager. Tvärtom kan vi ha några plommon, men vi är bara inte säkra.

    Till NULL eller NULL?

    En tabell kan utformas för att antingen tillåta NULL-värden eller inte.

    Här är ett SQL-exempel som skapar ett inventeringsbord som tillåter vissa NULL:

    SQL> CREATE TABLE INVENTORY (InventoryID INT INTE NULL, Artikel VARCHAR (20) INTE NULL, Mängd INT);

    Inventarietabellen här tillåter inte NULL-värden för InventoryID och den Artikel kolumner, men tillåter dem för Kvantitet kolumn.

    Medan NULL-värdet är perfekt kan NULL-värden orsaka problem, eftersom en jämförelse av värden i vilken en är NULL resulterar alltid i NULL.

    För att kontrollera om din tabell innehåller NULL-värden, använd operatören IS NULL eller NOT NULL. Här är ett exempel på IS NULL:

    SQL> VÄLJ INVENTORYID, PUNKT, MÄNGD FRÅN INVENTORI, VAR MÄNGD ÄR INTE NULL;

    Med tanke på vårt exempel här skulle detta återvända:

    InventoryIDArtikelKvantitet
    3plommon

    Fungerar på NULLs

    Att arbeta med NULL-värden ger ofta NULL-resultat, beroende på SQL-funktionen. Till exempel, förutsatt att A är NULL:

    Aritmetiska operatörer

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

    Jämförelseoperatörer

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

    Det här är bara några exempel på operatörer som vill alltid returnera NULL om en operand är NULL. Det finns mycket mer komplexa frågor, och alla är komplicerade av NULL-värden. Hemmapunkten är att om du tillåter NULL-värden i din databas förstår du konsekvenserna och planerar för dem.

    Det är NULL i ett nötskal!