Yr hyn y dylech ei wybod Amdanom NULL Gwerthoedd

Deall y Defnydd o NULLs i Osgoi Problemau Cronfa Ddata

Mae defnyddwyr sy'n newydd i fyd y cronfeydd data yn aml yn cael eu drysu gan werth arbennig yn benodol i'r maes - y gwerth NULL. Gellir dod o hyd i'r gwerth hwn mewn maes sy'n cynnwys unrhyw fath o ddata ac mae ganddi ystyr arbennig iawn yng nghyd-destun cronfa ddata berthynol. Mae'n debyg ei bod hi'n well dechrau ein trafodaeth o NULL gydag ychydig o eiriau ynglŷn â beth nad yw NULL yn:

Yn hytrach, NULL yw'r gwerth a ddefnyddir i gynrychioli darn o ddata anhysbys. Yn aml, bydd rhaglenwyr cronfa ddata yn defnyddio'r ymadrodd "gwerth NULL", ond mae hyn yn anghywir. Cofiwch: mae NULL yn werth anhysbys lle mae'r maes yn ymddangos yn wag.

NULL yn y Byd Real

Gadewch i ni edrych ar enghraifft syml: tabl sy'n cynnwys y rhestr ar gyfer stondin ffrwythau. Tybiwch fod ein rhestr yn cynnwys 10 afalau a thri orennau. Rydym hefyd yn darparu eirin stoc, ond mae ein gwybodaeth am y rhestr eiddo yn anghyflawn ac ni wyddom faint o eirin (os oes rhai) sydd mewn stoc. Gan ddefnyddio'r gwerth NULL, byddai gennym y tabl rhestr a ddangosir yn y tabl isod.

Rhestr Sefyll Ffrwythau

InventoryID Eitem Nifer
1 Afalau 10
2 Orennau 3
3 Eirin NULL


Byddai'n amlwg yn anghywir cynnwys nifer o 0 ar gyfer y cofnod eirin, gan y byddai hynny'n awgrymu nad oedd gennym eirin yn y rhestr. I'r gwrthwyneb, efallai y bydd gennym ryw eirin, ond nid ydym yn sicr yn unig.

I NULL neu NEU NULL?

Gellir dylunio tabl i naill ai ganiatáu gwerthoedd NULL ai peidio.

Dyma enghraifft SQL sy'n creu tabl Rhestr sy'n caniatáu rhai NULLs:

SQL> CREATE TABL INVENTORY (NID InventoryID INT NULL, Eitem VARCHAR (20) NOT NULL, Quantity INT);

Nid yw'r tabl Rhestr yma yn caniatáu gwerthoedd NULL ar gyfer y InventoryID a'r colofnau Eitemau , ond mae'n eu caniatáu ar gyfer y golofn Nifer .

Er bod caniatáu gwerth NULL yn berffaith iawn, gall gwerthoedd NULL achosi problemau oherwydd bod unrhyw gymhariaeth o werthoedd y mae un yn NULL bob amser yn arwain at NULL.

I wirio a yw eich tabl yn cynnwys gwerthoedd NULL, defnyddiwch y gweithredydd IS NULL neu NID YW NIWLI. Dyma enghraifft o IS NULL:

SQL> SELECT INVENTORYID, ITEM, NODWCH O DDENTWEDDAETH LLE NAD YW NOD YR NODWEDD;

O ystyried ein hesiampl yma, byddai hyn yn dychwelyd:

InventoryID Eitem Nifer
3 Eirin

Gweithredu ar NULLs

Mae gweithio gyda gwerthoedd NULL yn aml yn cynhyrchu canlyniadau NULL, yn dibynnu ar y gweithrediad SQL . Er enghraifft, gan dybio bod A yn NULL:

Gweithredwyr Rhifeg

Gweithredwyr Cymhariaeth

Dyma rai enghreifftiau o weithredwyr a fydd bob amser yn dychwelyd NULL os yw un operand yn NULL. Mae llawer o ymholiadau mwy cymhleth yn bodoli, ac mae pob un yn gymhleth gan werthoedd NULL. Y pwynt cymryd cartref yw, os ydych chi'n caniatáu gwerthoedd NULL yn eich cronfa ddata, yn deall y goblygiadau a chynllunio ar eu cyfer.

Mae hynny'n NULL yn fyr!