Skip to main content

Дефиниране и правилно използване на NULL стойности

The price of shame | Monica Lewinsky (Юни 2026)

The price of shame | Monica Lewinsky (Юни 2026)
Anonim

Потребителите, които са нови за света на базите данни, често са объркани от специална стойност, която е специфична за полето - стойността на 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 за InventoryID и Вещ колони, но не им позволява количество колона.

    Докато позволяването на стойност 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:

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

    • A + B = NULL
    • A - B = NULL
    • A * B = NULL
    • A / B = NULL

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

    • A = B = NULL
    • А! = В = NULL
    • A> B = NULL
    • A! <B = NULL

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

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