X'Għandek Tkun Taf Dwar Valuri NULL

Nifhem l-Użu ta 'NULLs biex Evita l-Problemi tad-Database

Utenti ġodda għad-dinja ta ' databases huma ta' spiss konfużi minn valur speċjali partikolari għall-qasam - il-valur NULL. Dan il-valur jista 'jinstab f'qasam li fih kwalunkwe tip ta' dejta u għandu tifsira speċjali ħafna fil-kuntest ta 'database relazzjonali. Huwa probabbilment l-aħjar li tibda d-diskussjoni tagħna ta 'NULL bi ftit kliem dwar dak li NULL mhix :

Pjuttost, NULL huwa l-valur użat biex jirrappreżenta data mhux magħrufa. Spiss, il-programmaturi tad-database għandhom jużaw il-frażi "valur NULL", iżda dan mhux korrett. Ftakar: a NULL huwa valur mhux magħruf fejn il-qasam jidher vojt.

NULL fid-Dinja Rjali

Ejja nagħtu ħarsa lejn eżempju sempliċi: tabella li fiha l-inventarju għal stand tal-frott. Ejja ngħidu li l-inventarju tagħna fih 10 tuffieħ u tliet larinġ. Għandna wkoll għanbaqar tal-istokk, iżda l-informazzjoni dwar l-inventarju tagħna mhix kompluta u ma nafux kemm hemm xi għanbaqar (jekk ikun hemm). Bl-użu tal-valur NULL, ikollna t-tabella tal-inventarju murija fit-tabella hawn taħt.

Inventarju Stand tal-Frott

InventoryID Punt Kwantità
1 Tuffieħ 10
2 Larinġ 3
3 Għanbaqar NULL


Ikun ovvjament inkorrett li tiġi inkluża kwantità ta '0 għar-rekord tal-għanbaqar, minħabba li dan jimplika li ma kellna l- ebda għanbaqar fl-inventarju. Għall-kuntrarju, jista 'jkollna xi għanbaqar, imma aħna mhux żgur.

Għal NULL jew MHUX XEJN?

Tabella tista 'tkun iddisinjata biex jew tippermetti valuri NULL jew le.

Hawnhekk hawn eżempju SQL li joħloq tabella tal-Inventarju li tippermetti xi NULLs:

SQL> CREATE TABLE INVENTORY (InventoryID INT NOT NULL, Oġġett VARCHAR (20) MHUX NULL, Kwantità INT);

It-tabella tal-Inventarju hawn ma tippermettix valuri NULL għall- InventoryID u l-kolonni tal- Punt , iżda tħallihom għall-kolonna tal- Kwantità .

Filwaqt li jippermetti valur NULL huwa perfettament multa, il-valuri NULL jistgħu jikkawżaw problemi minħabba li kwalunkwe tqabbil ta 'valuri li fihom wieħed huwa NULL dejjem jirriżulta f'NULL.

Biex tiċċekkja jekk it-tabella tiegħek fihax valuri NULL, uża IS NULL jew MHUX NULL operatur. Hawn hu eżempju ta 'IS NULL:

SQL> TAGĦŻEL INVENTORJU, ITEM, KWANTITÀ MINN INVENTARJU FEJN IL-KWANTITÀ MHIJIEX NULL;

Mogħti l-eżempju tagħna hawnhekk, dan jirritorna:

InventoryID Punt Kwantità
3 Għanbaqar

Joperaw fuq NULLs

Ħidma b'valuri NULL ta 'spiss tipproduċi riżultati NULL, skont l- operazzjoni SQL . Per eżempju, jekk wieħed jassumi li A huwa NULL:

Operaturi Aritmetiċi

Operaturi ta 'Tqabbil

Dawn huma biss ftit eżempji ta 'operaturi li dejjem se jirritornaw NULL jekk operand wieħed huwa NULL. Hemm ħafna mistoqsijiet kumplessi ħafna, u kollha huma kkumplikati b'valuri NULL. Il-punt tal-bidu huwa li, jekk tħalli valuri NULL fid-database tiegħek, tifhem l-implikazzjonijiet u tippjana għalihom.

Dak huwa NULL fil-qosor!