Ce trebuie să știți despre valorile NULL

Înțelegerea utilizării NULL-urilor pentru a evita problemele bazei de date

Utilizatorii noi în lumea bazelor de date sunt adesea confundați de o valoare specială specifică domeniului - valoarea NULL. Această valoare poate fi găsită într-un câmp care conține orice tip de date și are un înțeles foarte special în contextul unei baze de date relaționale. Este probabil cel mai bine să începeți discuția despre NULL cu câteva cuvinte despre ce NULL nu este:

Mai degrabă, NULL este valoarea folosită pentru a reprezenta o piesă necunoscută de date. Adesea, programatorii de baze de date vor folosi expresia "o valoare NULL", dar acest lucru este incorect. Rețineți: o valoare NULL este o valoare necunoscută în care câmpul este gol.

NULL în lumea reală

Să aruncăm o privire la un exemplu simplu: un tabel care conține inventarul pentru un stand de fructe. Să presupunem că inventarul nostru conține 10 mere și trei portocale. De asemenea, avem stocuri de prune, dar informațiile inventarului noastre sunt incomplete și nu știm cât de multe prune (dacă există) sunt în stoc. Folosind valoarea NULL, am avea tabelul de inventar prezentat în tabelul de mai jos.

Fruit Stand Inventory

InventoryID Articol Cantitate
1 mere 10
2 portocale 3
3 prune NUL


Ar fi în mod evident incorect să includeți o cantitate de 0 pentru înregistrarea prunelor, pentru că asta ar însemna că nu avem prune în inventar. Dimpotrivă, s-ar putea să avem niște prune, dar nu suntem siguri.

Pentru NULL sau NU NULL?

Un tabel poate fi proiectat pentru a permite sau nu valori NULL.

Iată un exemplu SQL care creează un tabel de inventar care permite anumitor NULL-uri:

SQL> CREATE INVENTARUL TABELULUI (InventoryID INT NOT NULL, Articol VARCHAR (20) NOT NULL, Quantity INT);

Tabelul Inventar aici nu permite valorile NULL pentru numerele InventoryID și Coloana Articolului , dar nu le permite coloanei Cantitate .

Dacă permiteți o valoare NULL este perfectă, valorile NULL pot provoca probleme deoarece orice comparație a valorilor în care unul este NULL duce întotdeauna la NULL.

Pentru a verifica dacă tabelul conține valori NULL, utilizați operatorul IS NULL sau IS NOT NULL. Iată un exemplu de IS NULL:

SQL> SELECT INVENTORYID, PUNCT, CANTITATE DIN INVENTARE ÎN CAZUL CELOR NU ESTE NULL;

Având în vedere exemplul nostru aici, acest lucru se va întoarce:

InventoryID Articol Cantitate
3 prune

Operarea pe NULL-uri

Lucrul cu valorile NULL produce adesea rezultate NULL, în funcție de operația SQL . De exemplu, presupunând că A este NULL:

Operatori aritmetici

Operatori de comparare

Acestea sunt doar câteva exemple de operatori care vor întoarce întotdeauna NULL dacă un operand este NULL. Sunt multe interogări complexe și toate sunt complicate de valorile NULL. Punctul de plecare este că, dacă permiteți valorile NULL în baza de date, înțelegeți implicațiile și planificați-le.

Este NULL pe scurt!