Skip to main content

NULL-arvojen määritelmä ja oikeat käyttötarkoitukset

There are No Forests on Earth ??? Really? Full UNBELIEVABLE Documentary -Multi Language (Huhtikuu 2025)

There are No Forests on Earth ??? Really? Full UNBELIEVABLE Documentary -Multi Language (Huhtikuu 2025)
Anonim

Tietokantojen maailmaan uusia käyttäjiä hämmentää usein erityinen kentän erityisarvo - NULL-arvo. Tämä arvo löytyy kenttään, joka sisältää minkä tyyppisiä tietoja, ja sillä on hyvin erityinen merkitys relaatiotietokannan yhteydessä. On todennäköisesti parasta aloittaa NULL-keskustelu muutamalla sanalla siitä, mitä NULL on ei :

  • NULL ei ole numero nolla.
  • NULL ei ole tyhjä merkkijono ("").

    Pikemminkin NULL on arvo, jota käytetään edustamaan tuntematonta dataa. Usein tietokannan ohjelmoijat käyttävät lausetta "NULL-arvo", mutta tämä on väärä. Muista: NULL on tuntematon arvo, jossa kenttä näkyy tyhjänä.

    NULL reaalimaailmassa

    Katsotaanpa yksinkertainen esimerkki: taulukko, joka sisältää hedelmäkannan inventaarin. Oletetaan, että luettelomme sisältää 10 omenasta ja kolmesta appelsiinista. Varastoimme myös luumuja, mutta inventaariotietomme ovat puutteellisia, emmekä tiedä kuinka monta (jos sellaista) luumua on varastossa. Käyttämällä NULL-arvoa meillä olisi taulukon taulukko alla.

    Fruit Stand Inventory

    InventoryIDeräMäärä
    1omenat10
    2appelsiinit3
    3luumutTYHJÄ

    Olisi selvästi virheellinen sisällyttää luumun kirjaan 0 määrä, koska se merkitsisi sitä, että meillä oli ei luumuja varastoon. Päinvastoin meillä saattaa olla luumuja, mutta emme ole varmoja.

    NULL tai NULL?

    Taulukko voidaan suunnitella joko sallimaan NULL-arvot tai ei.

    Tässä on SQL-esimerkki, joka luo Inventory-taulukon, joka sallii joidenkin NULL: ien:

    SQL CREATE TABLE INVENTORY (InventoryID INT NOT NULL, kohta VARCHAR (20) NOT NULL, määrä INT);

    Tässä Inventory-taulukossa ei sallita NULL-arvoja InventoryID ja erä sarakkeita, mutta ei salli niitä Määrä sarake.

    Vaikka NULL-arvo onkin täysin hieno, NULL-arvot voivat aiheuttaa ongelmia, koska vertailun arvoista, joista yksi on NULL, tuloksena on aina NULL.

    Jos haluat tarkistaa, onko taulukossa NULL-arvoja, käytä IS NULL- tai IS NOT NULL -operaattoria. Tässä on esimerkki IS NULL: sta:

    SQL> SELECT INVENTORYID, KOHTA, MÄÄRÄ, JOKA MÄÄRÄN NIMET;

    Ottaen huomioon meidän esimerkki, tämä palaa:

    InventoryIDeräMäärä
    3luumut

    Toiminta NULL: illa

    NULL-arvojen käsittely tuottaa usein NULL-tuloksia SQL-operaation mukaan. Oletetaan esimerkiksi, että A on NULL:

    Aritmeettiset operaattorit

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

    Vertailuoperaattorit

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

    Nämä ovat vain muutamia esimerkkejä toimijoista, jotka haluavat aina palauttaa NULL, jos yksi operandi on NULL. Paljon monimutkaisempia kyselyitä on olemassa, ja kaikki ovat monimutkaisia ​​NULL-arvoilla. Ota kotipiste on, että jos sallit NULL-arvot tietokannassasi, ymmärrä vaikutukset ja suunnittele ne.

    Se on NULL pähkinänkuoressa!