Kaj morate vedeti o vrednosti NULL

Razumevanje uporabe NULL za preprečevanje težav z bazami podatkov

Uporabniki, ki so novi v svet podatkovnih zbirk , pogosto zamenjujejo posebna vrednost, ki velja za polje - vrednost NULL. Ta vrednost je na voljo v polju, ki vsebuje vse vrste podatkov in ima zelo poseben pomen v kontekstu relacijske baze podatkov. Verjetno je najbolje, da začnemo razpravljati o NULL z nekaj besedami o tem, kaj NULL ni :

Namesto tega je NULL vrednost, ki se uporablja za predstavitev neznanega podatka. Pogosto programerji baze podatkov uporabljajo izraz "vrednost NULL", vendar je to napačno. Ne pozabite: NULL je neznana vrednost, v kateri je polje prazno.

NULL v realnem svetu

Oglejmo si preprost primer: tabelo, ki vsebuje inventar za stojnico za sadje. Recimo, da naš inventar vsebuje 10 jabolk in tri pomaranče. Prav tako stojimo s slivami, vendar so naši podatki o zalogah nepopolni in ne vemo, koliko (če obstajajo) sliv na zalogi. Z uporabo vrednosti NULL bi bila tabela inventarja prikazana v spodnji tabeli.

Popis zalog sadja

InventoryID Postavka Količina
1 Jabolka 10
2 Pomaranče 3
3 Slive NIČ


Očitno bi bilo napačno vključiti količino 0 za evidenco sliv, ker bi to pomenilo, da v zalogi nismo imeli slive. Nasprotno, morda imamo nekaj sliv, vendar nismo prepričani.

NULL ali NULL?

Tabela je lahko oblikovana tako, da dovoljuje vrednosti NULL ali ne.

Tukaj je primer SQL, ki ustvari tabelo inventarja, ki omogoča nekaj NULL:

SQL> CREATE TABLE INVENTORY (InventoryID INT NOT NULL, postavka VARCHAR (20) NOT NULL, količina INT);

Tabela Inventory tukaj ne dovoljuje vrednosti NULL za stolpce InventoryID in stolpce, vendar jim dovoljuje stolpec Količina .

Medtem ko je dovoljena vrednost NULL popolnoma v redu, lahko vrednosti NULL povzročijo težave, ker je vsaka primerjava vrednosti, pri kateri je ena NULL, vedno rezultat NULL.

Če želite preveriti, ali tabela vsebuje vrednosti NULL, uporabite funkcijo IS NULL ali IS NOT NULL. Tukaj je primer IS NULL:

SQL> IZBERI INVENTORYID, ITEM, KOLIČINA IZ INVENTORIJE, KOLI KOLIČINA NI NULL;

Glede na naš primer tukaj bi se to vrnilo:

InventoryID Postavka Količina
3 Slive

Deluje na NULL

Delo z vrednostmi NULL pogosto proizvaja rezultate NULL, odvisno od operacije SQL . Na primer, ob predpostavki, da je A NULL:

Aritmetični operaterji

Primerjalni operaterji

To so le nekateri primeri operaterjev, ki bodo vedno vrnili NULL, če je en operand NULL. Obstaja veliko kompleksnejših poizvedb in vse so zapletene z vrednostmi NULL. Domača točka je, da če dovolite vrednosti NULL v svoji bazi podatkov, razumete posledice in načrtujte zanje.

To je NULL na kratko!