Það sem þú ættir að vita um gildi NULL

Skilið Notkun NULLs til að forðast gagnasafnvandamál

Notendur sem eru nýttir í heim gagnagrunna eru oft ruglaðir af sérstöku gildi sem einkennast af þessu sviði - NULL gildi. Þetta gildi er að finna í reit sem inniheldur hvers konar gögnum og hefur mjög sérstaka þýðingu innan samhengis gagnasafns. Það er líklega best að byrja umræðu okkar um NULL með nokkrum orðum um hvað NULL er ekki :

Frekar er NULL gildiið sem notað er til að tákna óþekkt gögn. Oft munu gagnasafn forritarar nota setninguna "NULL gildi", en þetta er rangt. Mundu: NULL er óþekkt gildi þar sem reiturinn birtist ótvírætt.

NULL í Real World

Skulum líta á einfalt dæmi: borð sem inniheldur skrá fyrir ávöxtum standa. Segjum að birgðin okkar inniheldur 10 epli og þrjár appelsínur. Við seljum einnig plómur, en upplýsingar um birgða okkar eru ófullnægjandi og við vitum ekki hversu margir plómur eru á lager. Með því að nota NULL gildi, myndum við skrá töflunni sýnt í töflunni hér að neðan.

Fruit Stand Inventory

Skráarnúmer Item Magn
1 Epli 10
2 Appelsínur 3
3 Plómur NÚLL


Það væri greinilega rangt að innihalda magn 0 fyrir plómurann, vegna þess að það myndi þýða að við höfðum enga plómur í birgðum. Þvert á móti gætum við haft nokkrar plómur, en við erum bara ekki viss.

Til NULL eða EKKI NULL?

Tafla er hægt að hanna til að annað hvort leyfa NULL gildi eða ekki.

Hér er dæmi um SQL sem skapar birgðatafla sem gerir nokkrar NULLs:

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

Í töflunni hér að neðan er ekki hægt að leyfa NULL gildi fyrir InventoryID og atriðalistana, en leyfir þeim fyrir dálknum Magn .

Þó að leyfa NULL gildi sé fullkomlega fínt getur NULL gildi valdið vandræðum vegna þess að allir samanburður á gildum þar sem einn er NULL leiðir alltaf til NULL.

Til að athuga hvort borðið inniheldur NULL gildi skaltu nota IS NULL eða EKKI NULL rekstraraðila. Hér er dæmi um IS NULL:

SQL> SELECT INVENTORYID, ITEM, QUANTITY FROM INVENTORY WHERE QUANTITY IS NOT NULL;

Í ljósi fordæmis okkar hér myndi þetta koma aftur:

Skráarnúmer Item Magn
3 Plómur

Rekur á NULLs

Vinna með NULL gildi framleiðir oft NULL niðurstöður, allt eftir SQL aðgerðinni . Til dæmis, að því gefnu að A sé NULL:

Ríkisendurskoðendur

Samanburðaraðilar

Þetta eru bara dæmi um rekstraraðila sem munu alltaf skila NULL ef einn operand er NULL. Mjög flóknari fyrirspurnir eru til, og allir eru flóknar með NULL gildi. Aðalatriðið er að ef þú leyfir NULL gildi í gagnagrunninum skaltu skilja afleiðingar og áætlun fyrir þau.

Það er NULL í hnotskurn!