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 ceea ce este NULL nu :
- NULL nu este numărul zero.
- NULL nu este valoarea sirului gol ("").
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ă am avut Nu prune în inventar. Dimpotrivă, s-ar putea să avem niște prune, dar nu suntem siguri. 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 InventoryID si Articol coloane, dar le permite să Cantitate coloană. 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 DE INVENTARE, ÎN CAZUL CELOR NU ESTE NULL; Având în vedere exemplul nostru aici, acest lucru se va întoarce: 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 mereu retur 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!Pentru NULL sau NU NULL?
InventoryID Articol Cantitate 3 prune
Operarea pe NULL-uri