Skip to main content

Definition og korrekt brug af NULL værdier

Can this video get same likes and dislikes? (Juni 2025)

Can this video get same likes and dislikes? (Juni 2025)
Anonim

Brugere, der er nye til databasernes verden, forveksles ofte med en særlig værdi specielt for feltet - NULL-værdien. Denne værdi kan findes i et felt indeholdende enhver type data og har en meget speciel betydning inden for rammerne af en relationsdatabase. Det er nok bedst at starte vores diskussion om NULL med et par ord om, hvad NULL er ikke :

  • NULL er ikke tallet nul.
  • NULL er ikke den tomme streng ("") værdi.

    Snarere er NULL den værdi, der bruges til at repræsentere et ukendt data. Ofte bruger databaseprogrammører sætningen "en NULL-værdi", men dette er forkert. Husk: en NULL er en ukendt værdi, hvor feltet vises tomt.

    NULL i den virkelige verden

    Lad os tage et kig på et simpelt eksempel: et bord indeholdende opgørelsen til en frugtplade. Antag at vores lager indeholder 10 æbler og tre appelsiner. Vi lager også blommer, men vores opgørelsesoplysninger er ufuldstændige, og vi ved ikke, hvor mange (hvis nogen) blommer er på lager. Ved hjælp af NULL-værdien ville vi have opgørelsestabellen vist i tabellen nedenfor.

    Frugtstandsinventar

    InventoryIDVareAntal
    1æbler10
    2appelsiner3
    3blommerNUL

    Det ville helt klart være ukorrekt at inkludere en mængde på 0 for plommens rekord, fordi det ville betyde, at vi havde ingen blommer i lagerbeholdningen. Tværtimod kan vi have nogle blommer, men vi er bare ikke sikre.

    Til NULL eller IKKE NULL?

    Et bord kan være designet til enten at tillade NULL værdier eller ej.

    Her er et SQL-eksempel, der opretter en beholdningstabel, der tillader nogle NULL'er:

    SQL> CREATE TABLE INVENTORY (InventoryID INT IKKE NULL, Vare VARCHAR (20) IKKE NULL, Mængde INT);

    Opgørelsestabellen her tillader ikke NULL-værdier for InventoryID og Vare kolonner, men gør det muligt for dem Antal kolonne.

    Mens du tillader en NULL-værdi, er det helt fint, kan NULL-værdier forårsage problemer, fordi enhver sammenligning af værdier, hvor en er NULL, resulterer altid i NULL.

    For at kontrollere, om din tabel indeholder NULL værdier, skal du bruge IS NULL eller IS NOT NULL operatøren. Her er et eksempel på IS NULL:

    SQL> SELECT INVENTORYID, ITEM, Mængde fra lager, hvor mængden ikke er nul;

    I betragtning af vores eksempel her ville dette komme tilbage:

    InventoryIDVareAntal
    3blommer

    Opererer på NULLs

    Arbejde med NULL-værdier producerer ofte NULL-resultater afhængigt af SQL-operationen. For eksempel, under forudsætning af at A er NULL:

    Aritmetiske operatører

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

    Sammenligningsoperatører

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

    Dette er blot nogle eksempler på operatører, der vil altid returner NULL, hvis en operand er NULL. Der findes meget mere komplekse forespørgsler, og alle er komplicerede af NULL-værdier. Hjemstedet er, at hvis du tillader NULL-værdier i din database, forstå konsekvenserne og planlægge for dem.

    Det er NULL i et nøddeskal!