Co byste měli vědět o hodnotách NULL

Rozumět použití NULL, aby se zabránilo problémům s databází

Uživatelé noví do světa databází jsou často zaměňováni zvláštní hodnotou specifickou pro pole - hodnotu NULL. Tato hodnota se nachází v poli obsahujícím jakýkoli typ dat a má velmi zvláštní význam v kontextu relační databáze. Pravděpodobně je nejlepší začít s naší NULL s několika slovy o tom, co NULL není :

NULL je spíše hodnota, která slouží k reprezentaci neznámého datového souboru. Programátoři databází často používají výraz "hodnota NULL", ale toto je nesprávné. Nezapomeňte: hodnota NULL je neznámá hodnota, ve které je pole prázdné.

NULL v reálném světě

Podívejme se na jednoduchý příklad: tabulka s inventářem pro stánky s ovocem. Předpokládejme, že náš inventář obsahuje 10 jablek a tří pomerančů. Máme i skladové švestky, ale informace o inventáři jsou neúplné a nevíme, kolik švestků (pokud jsou) jsou na skladě. Pomocí hodnoty NULL bychom měli tabulku inventáře zobrazit v tabulce níže.

Inventář stojanu na ovoce

InventoryID Položka Množství
1 Jablka 10
2 Pomeranče 3
3 Švestky NULA


Bylo by zjevně nesprávné zahrnout množství 0 pro výpis švestky, protože to by znamenalo, že v zásobě nemáme žádné švestky. Naopak bychom mohli mít nějaké švestky, ale nejsme si jisti.

NULL nebo NULL?

Tabulka může být navržena tak, aby umožnila nebo nechat hodnoty NULL.

Zde je příklad SQL, který vytvoří tabulku Inventory, která umožňuje některé NULL:

SQL> CREATE TABLE INVENTORY (InventoryID INT NULL, položka VARCHAR (20) NOT NULL, Quantity INT);

Tabulka Inventory zde nepovoluje hodnoty NULL pro InventoryID a sloupce Item , ale povolí je pro sloupec Quantity .

Zatímco hodnota NULL je naprosto v pořádku, hodnoty NULL mohou způsobit problémy, protože každé porovnání hodnot, ve kterých je hodnota NULL vždy výsledkem NULL.

Chcete-li zkontrolovat, zda váš tabulka obsahuje hodnoty NULL, použijte operátor IS NULL nebo IS NOT NULL. Zde je příklad IS NULL:

SQL> SELECT INVENTORYID, POLOŽKA, MNOŽSTVÍ Z INVENTY, KDE MNOŽSTVÍ NENÍ NULL;

Vzhledem k našemu příkladu zde bychom se vrátili:

InventoryID Položka Množství
3 Švestky

Provoz na NULL

Práce s hodnotami NULL často vytváří výsledky NULL v závislosti na operaci SQL . Například za předpokladu, že A je NULL:

Aritmetické operátory

Operátory porovnání

Jedná se pouze o některé příklady operátorů, kteří vždy vrátí hodnotu NULL, pokud je jeden operand NULL. Existují mnohem složitější dotazy a všechny jsou komplikovány hodnotami NULL. Zásadním bodem je to, že pokud povolíte hodnoty NULL ve své databázi, pochopte důsledky a naplánujte je.

To je NULL ve zkratce!