Čo by ste mali vedieť o hodnotách NULL

Pochopte využitie NULL na vyvarovanie sa problémov databázy

Používatelia noví do sveta databáz sú často zmätení osobitnou hodnotou, ktorá je špecifická pre pole - hodnota NULL. Táto hodnota sa nachádza v poli obsahujúcom ľubovoľný typ údajov a má veľmi zvláštny význam v kontexte relačnej databázy. Pravdepodobne je najlepšie začať našu diskusiu o NULL s niekoľkými slovami o tom, čo NULL nie je :

NULL je skôr hodnota, ktorá sa používa na reprezentáciu neznámeho súboru údajov. Programátori databáz často používajú výraz "hodnota NULL", ale toto je nesprávne. Pamätajte si, že NULL je neznáma hodnota, v ktorej je pole prázdne.

NULL v reálnom svete

Poďme sa pozrieť na jednoduchý príklad: tabuľku obsahujúcu zoznam stánkov s ovocím. Predpokladajme, že náš inventár obsahuje 10 jabĺk a troch pomarančov. Máme tiež zásoby sliviek, ale naše informácie o zásobách sú neúplné a nevieme, koľko sliviek (ak nejaké) sú na sklade. Pri použití hodnoty NULL by sme mali tabuľku inventára zobrazenú v tabuľke nižšie.

Inventár stojanov na ovocie

InventoryID položka množstvo
1 jablká 10
2 pomaranče 3
3 slivky NULOVÝ


Bolo by zrejmé, že by bolo nesprávne zahrnúť množstvo 0 pre záznam sliviek, pretože to by znamenalo, že v zásobách sme nemali žiadne slivky. Naopak, možno by sme mali nejaké slivky, ale len sme si neboli istí.

Na NULL alebo NOT NULL?

Tabuľku možno navrhnúť buď na to, aby umožnila alebo nepovolila hodnoty NULL.

Tu je príklad SQL, ktorý vytvára tabuľku zásob, ktorá umožňuje niektoré NULLy:

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

Tabuľka inventára tu nepovoľuje hodnoty NULL pre inventárnu identifikáciu a stĺpce položiek , ale povolí ich pre stĺpec Množstvo .

Aj keď je hodnota NULL perfektná, hodnoty NULL môžu spôsobovať problémy, pretože akékoľvek porovnanie hodnôt, v ktorých je hodnota NULL, vždy má hodnotu NULL.

Ak chcete skontrolovať, či tabuľka obsahuje hodnoty NULL, použite operátor IS NULL alebo IS NOT NULL. Tu je príklad IS NULL:

SQL> SELECT INVENTORYID, ITEM, QUANTITY FROM INVENTORY, KDE MNOŽSTVO NIE JE NULL;

Vzhľadom na náš príklad tu by sme sa vrátili:

InventoryID položka množstvo
3 slivky

Prevádzka na NULL

Práca s hodnotami NULL často prináša výsledky NULL v závislosti od operácie SQL . Napríklad za predpokladu, že A je NULL:

Aritmetické operátory

Operátory porovnania

Toto sú len niektoré príklady operátorov, ktorí vždy vrátia NULL, ak je jeden operand NULL. Existujú oveľa zložitejšie otázky a všetky sú komplikované hodnotami NULL. Úvodným bodom je, že ak povolíte hodnoty NULL vo vašej databáze, pochopíte ich dôsledky a naplánujte ich.

To je NULL v skratke!