Какво трябва да знаете за NULL стойности

Разбиране на използването на NULL за избягване на проблеми с бази данни

Потребителите, които са нови за света на базите данни , често са объркани от специална стойност, която е специфична за полето - стойността на NULL. Тази стойност може да се намери в поле, съдържащо всякакъв вид данни и има много специално значение в контекста на релационна база данни. Вероятно е най-добре да започнем дискусията ни за NULL с няколко думи за това, което NULL не е :

По-скоро NULL е стойността, използвана за представяне на неизвестно количество данни. Често програмистите на бази данни ще използват фразата "стойност NULL", но това е неправилно. Запомнете: NULL е неизвестна стойност, в която полето изглежда празно.

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

Нека да разгледаме един прост пример: таблица, съдържаща инвентара за плодова поставка. Да предположим, че нашият инвентар съдържа 10 ябълка и три портокала. Също така предлагаме сливи, но нашата инвентарна информация е непълна и ние не знаем колко (ако има такива) сливи са на склад. Използвайки NULL стойността, ще имаме таблицата за инвентара, показана в таблицата по-долу.

Опис на плодовете

InventoryID Вещ количество
1 ябълки 10
2 портокали 3
3 сливи НУЛА


Очевидно е неправилно да включим количество от 0 за реколтата за сливи, защото това би означавало, че нямаме сливи в инвентара. Напротив, може да имаме няколко сливи, но просто не сме сигурни.

За NULL или NOT NULL?

Една таблица може да бъде проектирана така, че да позволи или не стойности NULL.

Ето един SQL пример, който създава таблица за инвентаризация, която позволява някои NULLs:

SQL> CREATE TABLE INVENTORY (Инвентаризация ID не е нула, позиция VARCHAR (20) NOT NULL, Количество INT);

Таблицата с инвентаризации тук не позволява стойностите NULL за инвентарните идентификатори и колоните за елементите, но им разрешава колоната Количество .

Докато позволяването на стойност NULL е напълно добра, стойностите NULL могат да причинят проблеми, защото всяко сравнение на стойностите, в които е NULL, винаги води до NULL.

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

SQL> SELECT INVENTORYID, ITEM, QUANTITY FROM INVENTORY WHERE QUANTITY НЕ Е НАЛЯНА;

Като имаме нашия пример тук, това ще се върне:

InventoryID Вещ количество
3 сливи

Работа с NULL

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

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

Сравнение на операторите

Това са само някои примери за оператори, които винаги ще връщат NULL, ако един операнд е NULL. Съществуват много по-сложни заявки и всичко се усложнява от стойностите на NULL. Началната точка на заемане е, че ако позволите стойности за NULL във вашата база данни, разберете какви са последиците и планирайте за тях.

Това е NULL накратко!