Што треба да знаете за вредностите на NULL

Разбирање на употребата на NULLs за да се избегнат проблемите со бази на податоци

Корисниците нови во светот на бази на податоци често се мешаат со посебна вредност, особено за полето - вредноста NULL. Оваа вредност може да се најде во поле кое содржи било кој тип на податоци и има многу посебно значење во контекст на релациона база на податоци. Најверојатно е најдобро да се започне нашата дискусија за NULL со неколку зборови за тоа што не е NULL:

Напротив, NULL е вредноста што се користи за да претставува непознат дел од податоците. Често, програмерите на база на податоци ќе ја искористат фразата "вредност NULL", но ова е неточна. Запомни: NULL е непозната вредност во која полето се појавува празно.

NULL во реалниот свет

Ајде да погледнеме еден едноставен пример: табела која го содржи инвентарот за овошен штанд. Да претпоставиме дека нашиот инвентар содржи 10 јаболка и три портокали. Исто така, располагаме со сливи, но нашите инвентарни информации се нецелосни и не знаеме колку (слични) сливи се во залиха. Користејќи ја вредноста на NULL, ќе ја имаме табелата за инвентар прикажана во табелата подолу.

Инвентар за овошје

InventoryID Точка Квантитет
1 Јаболка 10
2 Портокали 3
3 Сливи НУЛА


Јасно е дека е неточна да се вклучи количина од 0 за записот на сливи, бидејќи тоа би значело дека немавме слива во инвентар. Напротив, може да имаме некои сливи, но не сме сигурни.

Да NULL или НЕ NULL?

Табела може да биде дизајнирана за да дозволи вредности на NULL или не.

Еве пример за SQL што создава табела за инвентар која дозволува некои NULLs:

SQL> КРЕАЦИЈА ТАБЕЛА ИНВЕСТИТОРИ (InventoryID INT NOT NULL, ставка VARCHAR (20) НЕ NULL, количина INT);

Табелата Инвентар овде не дозволува NULL вредности за колоните InventoryID и ставката , но не им дозволува за колоната Quantity.

Додека дозволувајќи вредност од NULL е совршено фина, вредностите на NULL може да предизвикаат проблеми, бидејќи секоја споредба на вредностите во која еден е NULL секогаш резултира во NULL.

За да проверите дали вашата табела содржи вредности NULL, користете го операторот IS NULL или IS NOT NULL. Еве еден пример за IS NULL:

SQL> Избери ИНВЕНТОРИИД, Точка, КОЛИЧИНА ОД ИНventorY КАДЕ КВАЛИТЕТ НЕ е NULL;

Со оглед на нашиот пример овде, ова ќе се врати:

InventoryID Точка Квантитет
3 Сливи

Работи на NULL

Работата со вредностите NULL често произведува резултати од NULL, во зависност од операцијата SQL . На пример, под претпоставка дека А е NULL:

Аритметички оператори

Оператори за споредба

Ова се само некои примери на оператори кои секогаш ќе се вратат NULL ако еден операнд е NULL. Многу покомплексни прашања постојат, и сите се комплицирани од вредностите NULL. Појдовната точка е дека, ако дозволите NULL вредности во вашата база на податоци, разберете ги импликациите и планирајте ги за нив.

Тоа е NULL во мало!