Šta biste trebali znati o vrijednostima NULL-a

Razumeti korišćenje NULL-a kako bi izbegli probleme sa baza podataka

Korisnici koji su novi u svijetu baza podataka često zbunjuju posebnom vrijednošću specifičnim za polje - vrijednost NULL. Ova vrijednost se može naći u polju koji sadrži bilo koju vrstu podataka i ima posebno značenje u kontekstu relacijske baze podataka. Verovatno je najbolje započeti našu raspravu o NULL-u sa nekoliko reči o tome šta NULL nije :

Umjesto toga, NULL je vrijednost koja se koristi za predstavljanje nepoznatog podatka. Često programeri baze podataka koriste frazu "vrijednost NULL", ali to nije tačno. Zapamtite: NULL je nepoznata vrijednost u kojoj se polje pojavljuje prazno.

NULL u stvarnom svetu

Hajde da pogledamo jednostavan primer: tabela koja sadrži inventar za voćni štand. Pretpostavimo da naš inventar sadrži 10 jabuka i tri pomorandže. Takođe imamo šljive, ali naši podaci o zalihama su nepotpuni i ne znamo koliko je sliva (ukoliko postoje) slive. Koristeći vrednost NULL, imali smo tablicu inventara prikazanu u donjoj tabeli.

Inventar za voće

InventoryID Stavka Količina
1 Jabuke 10
2 Pomorandže 3
3 Šljive NULL


Očigledno bi bilo netačno uključiti količinu od 0 za evidenciju šljiva, jer bi to značilo da nismo imali šljive u popisu. Naprotiv, možda imamo neke šljive, ali nismo sigurni.

Da NULL ili NE NULL?

Tabela se može dizajnirati da dozvoli NULL vrijednosti ili ne.

Evo SQL primera koji kreira tabelu inventara koja dozvoljava neke NULL:

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

Tabela inventara ovde ne dozvoljava vrijednosti NULL za stupce InventoryID i stavke , ali im dozvoljava kolonu Količina .

Iako je omogućavanje NULL vrijednosti savršeno fino, vrijednosti NULL-a mogu izazvati probleme, jer bilo koje poređenje vrijednosti u kojima je jedan NULL uvijek rezultira u NULL-u.

Da biste proverili da li vaša tablica sadrži NULL vrijednosti, koristite IS NULL ili IS NOT NULL operater. Evo primera IS NULL:

SQL> IZBORI INVENTORYID, ITEM, KOLIČINA IZ INVENTARA GDE KOLIČINA NIJE NULL;

S obzirom na naš primer ovde, ovo bi se vratilo:

InventoryID Stavka Količina
3 Šljive

Radi na NULL

Rad sa NULL vrijednostima često proizvodi NULL rezultate, u zavisnosti od SQL operacije . Na primjer, pod pretpostavkom da je A NULL:

Aritmetički operateri

Operatori upoređivanja

Ovo su samo neki primjeri operatora koji će uvijek vratiti NULL ako je jedan operand NULL. Mnogo složenijih upita postoje, a sve su komplikovane vrijednostima NULL-a. Točka oduzimanja kuće je da, ako dozvolite vrijednosti NULL u svojoj bazi podataka, razumijete implikacije i planirajte za njih.

To je NULL na kratko!